绑定WPF DataGrid中DataGridColumn的可见属性

时间:2009-03-21 09:57:16

标签: c# wpf data-binding

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

我的绑定表达式是,

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

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

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

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

任何人都能看到我做错了什么?或者是否有其他人能够绑定到可见属性。

此致

马特

4 个答案:

答案 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);