我有一個自定義的DataTemplate一個列表框,如下所示:自定義文本動態
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我願在此基礎上使用了頁面上的其他控件的值以自定義TextBlock的內容過濾列表框中的項目。因此,如果過濾器控件中包含文本「Hello」,則會顯示一個包含「Hello World!」文本的列表項。會出現爲你好世界! (用「你好」加粗)。
我不確定在這種類型的自定義格式中掛鉤。我想過使用Converter,但他們只支持單個參數,而多值轉換器在Silverlight 4中仍然是不可行的。我想到了一個可以迭代項目的事件,但似乎沒有任何項目出現在ListBox或項目級別。我看到this option,但我不得不懷疑是否沒有更簡單的解決方案來解決這個問題。
更新:由於匹配可能發生在字符串中的多個位置,因此我需要使用多個RUN塊,這更加複雜。例如。你好世界你好會有兩場比賽。
那麼,我會簡單地然後能夠注入到TextBlock多個運行,如果是的話如何? – 2011-04-04 20:20:39
對於多次運行,我認爲你將需要綁定到Inlines屬性。 http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.inlines(v=vs.95).aspx – BrandonZeider 2011-04-04 21:07:11