我有一个DataGrid,根据网格中项目的属性禁用某些行...
<DataGrid ItemsSource="{Binding Items}">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Enabled}" Value="False">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
我想阻止选择禁用的行。在上面的示例中,您无法通过单击选择已禁用的行,但还有其他方法可以选择它们,例如,Ctrl-A选择所有行(包括已禁用的行),选择已启用的行,然后按住Shift键单击另一个已启用的行还会选择它们之间的任何禁用行等...
有没有办法防止被禁用的行被选中? (例如,Ctrl-A只会选择启用行)
答案 0 :(得分:1)
您必须处理SelectedCellsChanged
的{{1}}事件。在下面的示例中,我使用了具有DataGrid
属性的Student
对象列表。
Enabled
我已经检查了它,它解决了你问题中提到的所有问题。