我最近發佈了同樣的問題,但對於WPF並得到了答案。問題是,答案在Silverlight中無效。 以下是這種情況:我使用MVVM Light Toolkit,並將DataGrid綁定到ObservableCollection。只顯示一個文本列。我希望單元格的文本爲Bold或Normal,具體取決於所顯示對象內部的布爾值。 使它在WCF工作,我使用的樣式與Syle.Trigger:如何根據在Silverlight中使用MVVM綁定的數據更改DataGrid的單元格?
<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
它的作品!謝謝 !!我爲IsRead的值「True」和FontWeight的Normal添加了第二個DataTrigger,以便在bool更改爲true時恢復正常。我覺得很奇怪,雖然「FontWeight屬性不適用於DataGridTextColumn列類型」。對我來說,文本和字體是兄弟姐妹:)。再次感謝您的幫助。 – DEIONaLiMs