【问题标题】:Binding the Visibility property of a WPF Datagrid column? Where is my fault?绑定 WPF Datagrid 列的 Visibility 属性?我的错在哪里?
【发布时间】:2011-11-30 03:26:03
【问题描述】:

在设置我的 WPF DataGrid 列的循环中,我想使用以下代码将列可见性绑定到我的“VisibilityList”中的成员“i”:

var bindingColumnVisibilty = new Binding(string.Format("VisibilityList[{0}]", i));
BindingOperations.SetBinding(customBoundColumn, DataGridColumn.VisibilityProperty, bindingColumnVisibilty);

我已经在循环开始之前设置了 DataContext:

TestControlDataGrid.TestDataGrid.DataContext = dataGridSource;

dataGridSource 类包含:

public List<Visibility> VisibilityList;

这似乎不起作用。我是否正确设置了 DataContext 和绑定?在这个循环之后我用以下设置 ItemsSource 有关系吗?

TestDataGrid.ItemsSource = dataGridSource.DataList;

【问题讨论】:

标签: wpf binding datagrid visibility


【解决方案1】:

好的,事实证明 DataGridColumn 没有从 DataGrid 继承 DataContext,因为它不在逻辑(或可视)树中,所以这就是我的绑定不起作用的原因。

显示了一种解决方法here

【讨论】:

    【解决方案2】:

    您将 VisabilityList 格式化为字符串。您需要将其保留为可见性。

    【讨论】:

    • 但如果我尝试: var bindingColumnVisibilty = new Binding(dataGridSource.VisibilityList[i]);然后给我错误“'System.Windows.Data.Binding.Binding(string)' 的最佳重载方法匹配有一些无效参数”和“参数 1:无法从 'System.Windows.Visibility' 转换为 'string'”
    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2010-10-14
    • 2014-10-05
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多