gpt4 book ai didi

c# - 使 WPF 触发器使用任何属性

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:08 25 4
gpt4 key购买 nike

我使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com