我无法将WPF datagridtextcolumn的Visible属性绑定到布尔值。
我的绑定表达式是,
{Binding Path=DataContext.IsThisColumnVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},Converter={StaticResource vc}}
我已检查转换器是否正常工作(bool到可见性枚举)并且在范围内。
如果我对列的标题使用相同的表达式,则标题会按预期显示“false”。
Visible是一个依赖属性,因此应该是可绑定的。
任何人都能看到我做错了什么?或者是否有其他人能够绑定到可见属性。
此致
马特
答案 0 :(得分:8)
我解决了这个问题。
DataGridCOlumn不是框架元素,因此FindAncestor调用失败(DataGridColumn不是可视树的一部分)
必须将绑定表达式的source属性设置为staticresource,它才能正常工作。
答案 1 :(得分:1)
很难说你的代码很少。什么是Visual Studio输出窗口(在调试下)?这通常会给你一个关于问题的线索。
答案 2 :(得分:1)
我一直在寻找相同的东西,并在an article about forwarding datacontext to columns找到了一个很好的方法。
答案 3 :(得分:0)
如果您可以从代码绑定,则可以使用
BindingOperations.SetBinding(DatagridColumInstance,
DatagridColum.VisibilityProperty,
myNewBindDef);