【问题标题】:Add check box column in wpf datagrid dynamically在 wpf 数据网格中动态添加复选框列
【发布时间】:2014-08-25 07:22:07
【问题描述】:

我正在使用 WPF 数据网格来显示使用 MVVM 的详细信息。此数据网格的列在运行时根据用户动态定义。它工作正常。但是,我需要在此数据网格中动态包含“复选框”列以及现有字段。我使用了以下代码。

...

foreach (var column in collection)
{
  GridColumnAdd(gridView, column);
}

...

private static void GridColumnAdd(DataGrid gridView, DataGridColumns columnName)
    {

        if (columnName.DisplayColumnName == "Print")
        {
            var column = new DataGridCheckBoxColumn();

            column.Header = columnName.DisplayColumnName;
            column.Binding = new Binding();

            var binding = (column.Binding as Binding);
            binding.Mode = BindingMode.TwoWay;

            if (binding != null)
            {
                IValueConverter converter = binding.Converter = new ColumnValueConverter(); // Will work here
                binding.ConverterParameter = columnName.BindingPropertyName;
            }

            gridView.Columns.Add(column);

        }
        else
        {
            var column = new DataGridTextColumn();

            column.IsReadOnly = true;
            column.Header = columnName.DisplayColumnName;
            column.Binding = new Binding();
            var binding = (column.Binding as Binding);
            if (binding != null)
            {
                IValueConverter converter = binding.Converter = new ColumnValueConverter(); // Will work here
                binding.ConverterParameter = columnName.BindingPropertyName;
            }
            gridView.Columns.Add(column);

        }
    }

运行此程序时,我收到以下异常“双向绑定需要路径或 XPath”。

您能帮我在现有的数据网格列中动态包含复选框列吗?

【问题讨论】:

  • 为什么不从 xaml 添加列。我的意思是是否需要在 C# 代码后面的代码中定义列?
  • 是的,根据用户,我们在数据网格中显示列。因此,复选框是某些用户的必填列之一。
  • 错误很明显,你需要定义一个路径来定义双向绑定,我看不到你的代码中定义的任何路径。

标签: c# wpf mvvm datagrid


【解决方案1】:

Binding()构造函数中的路径定义为Binding("IsChecked")

请参阅this 链接,您将获得一些帮助。如果您仍然不知道该怎么做。对此答案添加评论。

【讨论】:

    猜你喜欢
    • 2016-04-21
    • 2014-05-09
    • 1970-01-01
    • 2012-12-07
    • 2010-12-17
    • 1970-01-01
    • 2012-03-04
    • 2014-03-01
    • 2013-10-25
    相关资源
    最近更新 更多