Я недавно опубликовал тот же вопрос, но для WPF, и получил ответ. Дело в том, что ответ не работает в Silverlight.
Вот ситуация: я использую MVVM Light Toolkit, и у меня есть DataGrid, привязанный к ObservableCollection. Отображается только один текстовый столбец. Я хотел бы, чтобы текст ячейки был жирным или обычным в зависимости от логического значения, которое находится внутри отображаемого объекта.
Чтобы он работал в WCF, я использовал стиль с Syle.Trigger:
<DataGrid.Resources>
<Style x:Key="Style1" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsRead}" Value="False">
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Title}" ElementStyle="{StaticResource ResourceKey=Style1}" />
</DataGrid.Columns>
Проблема в том, что это не доступно в Silverlight. Я провел некоторое исследование и обнаружил, что VisualStateManager является «заменой» для триггеров, но мне так и не удалось создать состояние, которое редактирует DataGridTextColumn. Я пробовал кучу разных способов от GoToState до DataStateBehavior ... пока ничего не получалось.
Пожалуйста, помогите!
Thx