我有一个数据网格绑定到我的视图模型中的 CollectionViewSource 视图。数据网格有一个 CheckBoxColumn 和三个 TextColumn,每个都绑定到视图中项目的属性。我在视图项中还有一个布尔属性“已启用”,我想用它来使各个行中的复选框不可见。作为额外的奖励,也可以更改这些行的其他三列的前景色。但主要的是不要让用户选中启用 == false 的行中的复选框。
编辑:基于下面斯蒂芬和安德鲁的链接,我试图添加一个值转换器,如下面的代码所示。但由于某种原因,它不起作用。我现在正在一个 CollectionView 视图上进行测试,该视图有 90 个项目,其中除一个项目之外的所有项目的 Enabled 属性为 false。所以我期待 89 行带有不可见的复选框和 1 行带有可见的复选框。但是,所有 90 行都有可见的复选框。有任何想法吗?
<tk:DataGrid x:Name ="gridClaims"
Grid.Row="0"
AutoGenerateColumns="False"
ItemsSource="{Binding ClaimViewModels.View}"
Width="350"
HrizontalAlignment="Left">
<tk:DataGrid.Resources>
<BooleanToVisibilityConverter x:Key="boolToVis" />
</tk:DataGrid.Resources>
<tk:DataGrid.Columns>
<tk:DataGridCheckBoxColumn
CellStyle="{StaticResource SingleClickEditing}"
Binding="{Binding Path=Selected}"
Visibility="{Binding Path=Enabled, Converter={StaticResource boolToVis}}"
CanUserSort="False" />
</tk:DataGrid.Columns>