我在WPF的Datagrid中遇到了一些问题。
我有一个Datagrid,并且当用户给Datagrid的ItemSource绑定项分配一个值时,我想将单个行的IsEnabled属性设置为false。
因此,我通过Datagrid样式触发器完成了这个功能:
<DataGrid AutoGenerateColumns="False" Margin="9,35,0,6" Name="dataGrid2" ItemsSource="{Binding}" SelectionChanged="dataGrid2_SelectionChanged" IsReadOnly="True" SelectionMode="Single">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="IsEnabled" Value="False" />
</Style.Setters>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Coluna}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="Campo" Binding="{Binding Path=Campo}" Width="1.4*" CanUserSort="False" />
<DataGridTextColumn Header="Coluna/Constante" Binding="{Binding Path=Coluna}" CanUserSort="False" Width="*" />
</DataGrid.Columns>
</DataGrid>
工作正常,当给该行的“Coluna”字段分配一个值(不同于null)时,它会禁用整个行。
问题是:我仍然可以使用右键单击并选择已禁用的行...“IsEnabled”属性只阻止datagrid行上的左键单击吗?我需要设置另一个属性来禁用该行上的右键单击吗?
谢谢!