触发/设置数据网格中特定行的样式
Posted
技术标签:
【中文标题】触发/设置数据网格中特定行的样式【英文标题】:Trigger/Set a style for a specific Row in a datagrid 【发布时间】:2021-11-20 01:57:29 【问题描述】:我使用 DataGrid 制作了一个表,其中 List 作为其 ItemsSource 绑定。我目前只想更改“计算函数”选项卡的行样式。我希望能够设置它,以便“计算函数”中的任何行的前景和背景为红色,并且我的所有其他选项卡保持正常。这怎么可能?
<DataGrid Name="ReflectionDataGrid"SelectedItem="Binding SelectedItem" ItemsSource="Binding List" AutoGenerateColumns="False" IsHitTestVisible="True">
<DataGrid.RowStyle>
<Style TargetType="x:Type DataGridRow">
<Style.Triggers>
<Trigger Property="Header" Value="Calculation Functions">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
【问题讨论】:
每个选项卡都应该有一个 DataGrid。 【参考方案1】:您可以绑定到父TabControl
的SelectedItem
的Header
属性:
<Style TargetType="x:Type DataGridRow">
<Style.Triggers>
<DataTrigger Binding="Binding SelectedItem.Header, RelativeSource=RelativeSource AncestorType=TabControl"
Value="Calculation Functions">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
【讨论】:
以上是关于触发/设置数据网格中特定行的样式的主要内容,如果未能解决你的问题,请参考以下文章