我有一個文本塊,我想將其內容綁定到我的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