我有一个文本块,我想将其内容绑定到我的viewmodel中的属性。如果内容是一个简单的字符串,这很好。但是如果我想要格式化内容和使用或标签,它就不那么好了......在这种情况下,我无法绑定一个字符串:textblock只会显示一个像这样的字符串“Hallo”。当它是一个简单的字符串绑定TextBlock文本
任何想法?由于
我有一个文本块,我想将其内容绑定到我的viewmodel中的属性。如果内容是一个简单的字符串,这很好。但是如果我想要格式化内容和使用或标签,它就不那么好了......在这种情况下,我无法绑定一个字符串:textblock只会显示一个像这样的字符串“Hallo”。当它是一个简单的字符串绑定TextBlock文本
任何想法?由于
如果你有一些类型的属性 - 您可以创建这种类型的一个DataTemplate
<DataTemplate DataType="{x:Type local:MySomeType}">
<!--your visual presentation goes here-->
</DataTemplate>
现在你可以简单地使用ContentPresenter显示您的财产
<ContentPresenter Content="{Binding MySomeTypeProperty}"/>
像这样的东西:
<Textblock content="{Binding MyProperty, StringFormat={}Hello {1}}" />
刚刚玩过字符串格式。
查看StringFormat属性可以为您做些什么。如果这还不够,你可能想写一个binding converter。
其实编辑删除了我的问题的一部分,我认为这不明确。我想知道是否可以将FlowDocument绑定到一个texblock,而不是一个简单的字符串。 Texblock可以通过使用Inlines属性显示运行标签。有没有办法绑定到这个? – user1472131 2012-07-31 20:37:29
你可以在你的问题中提出这个问题。唯一编辑的部分是问题标题。你可能试图绑定到'Inlines'属性,并认为它不能工作,因为它是只读的。您也可以考虑使用RichTextBox并将其绑定到其[Document](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.richtextbox.document.aspx)属性。 – Clemens 2012-08-01 07:23:12