【问题标题】: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。

标签: c# xml wpf datagrid itemsource


【解决方案1】:

您可以绑定到父TabControlSelectedItemHeader 属性:

<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>

【讨论】:

    猜你喜欢
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    相关资源
    最近更新 更多