C#WPF DataGrid.RowStyle设置列样式

时间:2016-08-08 11:10:36

标签: c# wpf datagrid

是否可以在WPF C#中的指定行中影响样式/ Behaviorto指定的列?

现在我有这个:

                    <DataTrigger Binding="{Binding Path=Status}" Value="2">
                        <Setter Property="Grid.Column" Value="0"/>
                        <Setter Property="IsEnabled" Value="false" />
                    </DataTrigger>

现在的问题是,整个行都被禁用了。我想在某些情况下只禁用第一列。

这是专栏,我想禁用:

            <DataGridTemplateColumn Header="Details" Width="100">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Click="ShowDetails">Details</Button>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

2 个答案:

答案 0 :(得分:0)

这样可行(如果“X”的值为3,则禁用第二列“Y”):

    <DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="X" Binding="{Binding X}"/>
            <DataGridTextColumn Header="Y" Binding="{Binding Y}">
                <DataGridTextColumn.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding X}" Value="3">
                                <Setter Property="IsEnabled" Value="False"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </DataGridTextColumn.CellStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

答案 1 :(得分:0)

解决方案:

<DataGridTemplateColumn Header="Details" Width="100">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button IsEnabled ="{Binding boolEnabled}" Click="ShowDetails">Details</Button>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>