0

我有一个数据网格绑定到我的视图模型中的 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>

4

1 回答 1

1

对于 Visibility 函数方面,您需要一个 BooleanToVisbility 转换器,您将使用它并将 hte datagrid 的 Visible 状态绑定到 datacontext 对象中的 Enabled 属性。

此外,可以以完全相同的方式处理前景色。

编辑:添加链接到转换器

于 2010-01-02T15:03:57.010 回答