【发布时间】:2025-11-27 06:00:02
【问题描述】:
我最近发布了相同的问题,但针对 WPF 并得到了答案。问题是答案在 Silverlight 中不起作用。 情况如下:我正在使用 MVVM Light Toolkit,并且我有一个绑定到 ObservableCollection 的 DataGrid。仅显示一个文本列。我希望单元格的文本为粗体或正常,具体取决于显示的对象内部的布尔值。 为了让它在 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 的不同方法......到目前为止没有任何效果。
请帮忙!
谢谢
【问题讨论】:
标签: silverlight mvvm datagrid expression-blend