简体   繁体   English

C#WPF DataGrid.RowStyle设置列样式

[英]C# WPF DataGrid.RowStyle set column style

Is it possible to affect a style/Behaviorto a specified column in a specified row in WPF C#? 是否有可能将样式/行为影响到WPF C#中指定行中的指定列?

Right now I have this: 现在我有这个:

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

The problem right now is, that the entire row is disabled. 现在的问题是,整个行被禁用。 I would like just the first column to be disabled in some circumstances. 在某些情况下,我只希望禁用第一列。

This is the column, I would like to disable: 这是专栏,我想禁用:

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

This works (disabling 2nd column "Y" if value of "X" is 3): 这有效(如果“ 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>

The solution: 解决方案:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM