- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个像这样的 JibGrid DataGrid(JibGrid 是标准 DataGrid 的开源相对简单的子类,用于实现过滤等内容):
<dataGrid:JibGrid ItemsSource="{Binding AvailableRDs}"
FilteredItemsSource="{Binding AvailableRDs}"
SelectedItem="{Binding SelectedAvailRD}"
AutoGenerateColumns="False" >
<dataGrid:JibGrid.Columns>
<DataGridCheckBoxColumn Header="Add?" Binding="{Binding Add}" Visibility="{Binding GetAddVisibility}"/>
<DataGridTextColumn Header="Tag" Binding="{Binding Tag}" />
<DataGridTextColumn Header="Revision Tag" Binding="{Binding RevisionTag}" />
<DataGridTextColumn Header="Current System" Binding="{Binding SystemStr}" />
</dataGrid:JibGrid.Columns>
</dataGrid:JibGrid>
目的是为每一行提供一个自定义类,为该行中每个单元格的内容提供属性 - 标签、修订标签等。所有这些都可以正常工作。我无法开始工作的是可见性绑定(bind)。如果表示 DataContext 中该行的类的 CanAdd 属性返回 False,我希望每一行中的复选框不可见。当我如上所述在 XAML 中添加 Visibility 绑定(bind)时,似乎发生的是 WPF 尝试将此绑定(bind)应用于实际列而不是每一行,因此绑定(bind)无法连接。我可以使用 WPF 资源管理器并手动将行的复选框可见性 DependencyProperty 绑定(bind)到行的数据上下文的 CanAdd 属性,并且工作正常,但我无法弄清楚如何在 XAML 或代码中使其生成该绑定(bind)自动为每一行中的复选框。有人对此有任何想法吗?
我四处寻找这样的问题,似乎出于某种原因,每个人都想根据整个网格的数据上下文中的某些内容来更改列本身的可见性,而没有其他人想更改可见性基于该行的数据上下文的各个行中的事物。我尝试了解决方案 here当我试图解决这个问题时,这就是那个答案想要做的。
最佳答案
您可以使用 DataGridTemplateColumn
和 BooleanToVisibilityConverter
来实现所需的结果
将 BooleanToVisibilityConverter
添加到您的资源中
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
</Window.Resources>
为 DataGridTemplateColumn 绑定(bind)设置 Converter
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Add}"
Visibility="{Binding CanAdd, Converter={StaticResource BoolToVis}}" ></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
关于wpf - 如何将 DataGrid 中 CheckBox 的可见性绑定(bind)到该行的 DataContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18993381/
我是一名优秀的程序员,十分优秀!