【问题标题】:Binding Visible property of a DataGridColumn in WPF DataGrid在 WPF DataGrid 中绑定 DataGridColumn 的 Visible 属性
【发布时间】:2010-10-14 17:16:54
【问题描述】:

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

我的绑定表达式是,

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

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

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

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

有人看到我做错了什么吗?或者有没有其他人能够绑定到可见属性。

问候,

马特

【问题讨论】:

    标签: c# wpf data-binding


    【解决方案1】:

    我解决了这个问题。

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

    必须将绑定表达式的源属性设置为静态资源,它工作正常。

    【讨论】:

    【解决方案2】:

    我一直在寻找同样的东西,并在an article about forwarding datacontext to columns 中找到了一种出色的方法。

    【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      如果你可以从代码中绑定,你可以使用

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

      【讨论】:

        猜你喜欢
        • 2014-01-03
        • 1970-01-01
        • 2012-10-04
        • 2010-12-06
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        • 2014-12-29
        • 2015-11-21
        相关资源
        最近更新 更多