我使用Datagrid
。在那里我放了一个 Area
的列表:
ObservableCollection<Area> areas = new ObservableCollection<Area>();
...
datagrid.ItemsSource = areas;
现在我想根据 Area
的属性设置行的样式。
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<!-- Compiler can't find UseForGroups -->
<Trigger Property="Area.UseForGroups" Value="True">
<Setter Property="Background" Value="LightCoral"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
如何引用 Area.UseForGroups
?
编辑
我用 DataTriggers
尝试了以下操作,但没有任何反应
<DataGrid ...>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}" >
<Style.Triggers>
<DataTrigger Binding="{Binding UseForGroups}" Value="True">
<Setter Property="Background" Value="LightCoral"/>
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
最佳答案
这是一个使用 DataTrigger 的例子
<Page.Resources>
<Style x:Key="RowStyle" TargetType="{x:Type DataGridRow}" >
<Style.Triggers>
<DataTrigger Binding="{Binding UseForGroups}" Value="True">
<Setter Property="Background" Value="LightCoral"/>
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Page.Resources>
<DataGrid RowStyle="{StaticResource RowStyle}" ...>
请注意,您不应指定“Area.UseForGroups”而仅指定“UseForGroups”,因为单个行的 DataContext 是一个区域。
关于c# - 使 WPF 触发器使用任何属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069705/