У меня есть ListBox с пользовательским шаблоном данных следующим образом:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я хотел бы настроить содержимое TextBlock на основе значения другого элемента управления на странице, который используется для фильтрации элементов в ListBox. Таким образом, если в элементе управления фильтра есть текст «Hello», это элемент списка с текстом «Hello World!» будет выглядеть как Hello world! (с «Hello» выделено жирным шрифтом).
Я не уверен, где подключить этот тип пользовательского форматирования. Я думал об использовании Конвертера, но они поддерживают только один параметр, и многозначные преобразователи в Silverlight 4 все еще не используются. Я думал о событии, где я мог бы перебирать элементы, но ни один из них не присутствует в ListBox или в Уровень предмета. Я видел эту опцию , но мне интересно, нет ли более простого решения этой проблемы.
ОБНОВЛЕНИЕ: Это даже усложняет тот факт, что мне нужно будет использовать несколько блоков RUN, так как совпадения могут происходить в нескольких местах в строке. Например. Привет мир Привет будет два матча.