[英]Add check box column in wpf datagrid dynamically
I am using WPF datagrid to display details using MVVM. 我正在使用WPF数据网格来使用MVVM显示详细信息。 Columns for this datagrid are dynamically defined at run time according to the user. 此datagrid的列是根据用户在运行时动态定义的。 It is working fine. 一切正常。 However, I am in need to include on "checkbox" column in this datagrid dynamically along with existing fields. 但是,我需要与现有字段一起动态地包含在此datagrid的“复选框”列中。 I have used following code. 我使用了以下代码。
... ...
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);
}
}
while running this I am getting following exception "Two-way binding requires Path or XPath". 运行此程序时,我遇到以下异常“双向绑定需要路径或XPath”。
Could you please help me to include checkbox column in the existing datagrid column dynamically? 您能帮我动态地在现有datagrid列中包括复选框列吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.