2012-07-31 61 views
0

我有一个文本块,我想将其内容绑定到我的viewmodel中的属性。如果内容是一个简单的字符串,这很好。但是如果我想要格式化内容和使用或标签,它就不那么好了......在这种情况下,我无法绑定一个字符串:textblock只会显示一个像这样的字符串“Hallo”。当它是一个简单的字符串绑定TextBlock文本

任何想法?由于

+0

其实编辑删除了我的问题的一部分,我认为这不明确。我想知道是否可以将FlowDocument绑定到一个texblock,而不是一个简单的字符串。 Texblock可以通过使用Inlines属性显示运行标签。有没有办法绑定到这个? – user1472131 2012-07-31 20:37:29

+0

你可以在你的问题中提出这个问题。唯一编辑的部分是问题标题。你可能试图绑定到'Inlines'属性,并认为它不能工作,因为它是只读的。您也可以考虑使用RichTextBox并将其绑定到其[Document](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.richtextbox.document.aspx)属性。 – Clemens 2012-08-01 07:23:12

回答

1

如果你有一些类型的属性 - 您可以创建这种类型的一个DataTemplate

<DataTemplate DataType="{x:Type local:MySomeType}"> 
    <!--your visual presentation goes here--> 
</DataTemplate> 

现在你可以简单地使用ContentPresenter显示您的财产

<ContentPresenter Content="{Binding MySomeTypeProperty}"/> 
0

像这样的东西:

<Textblock content="{Binding MyProperty, StringFormat={}Hello {1}}" /> 

刚刚玩过字符串格式。

+1

你当然是指''。注意'TextBlock'中的CamelCase,属性'Text'而不是'content','StringFormat'中多余的{}以及参数索引'0'而不是'1'。 – Clemens 2012-07-31 12:35:45

+0

对于这个清理。我只用了几次就在xaml中使用了字符串格式。 – TMan 2012-07-31 15:32:46

+0

你可以简单地编辑你的答案。 – Clemens 2012-07-31 16:07:40

相关问题