[英]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.