绑定WPF DataGrid中DataGridColumn的可见属性

我无法将WPF datagridtextcolumn的Visible属性绑定到布尔值。

我的约束表达是,

{Binding Path=DataContext.IsThisColumnVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},Converter={StaticResource vc}} 

我检查过转换器是否工作(bool到可见性枚举)并且在范围内。

如果我对列的标题使用相同的表达式,则标题会按预期显示“false”。

Visible是一个依赖属性,因此应该是可绑定的。

谁知道我做错了什么? 或者是否有其他人能够绑定到visible属性。

问候,

马特

我解决了这个问题。

DataGridCOlumn不是框架元素,因此FindAncestor调用失败(DataGridColumn不是可视树的一部分)

必须将绑定表达式的source属性设置为staticresource,它可以正常工作。

我正在寻找相同的东西,并在一篇关于将datacontext转发到列的文章中找到了一种非常好的方法。

很难说你的代码很少。 Visual Studio的“输出”窗口(在“调试”下)中有什么? 这通常可以为您提供问题的线索。

如果您可以使用代码绑定

 BindingOperations.SetBinding(DatagridColumInstance, DatagridColum.VisibilityProperty, myNewBindDef);