Я использую datagrid WPF для отображения деталей с использованием MVVM. Столбцы для этого datagrid динамически определяются во время выполнения в соответствии с пользователем. Он работает нормально. Тем не менее, мне нужно включить динамический столбец «checkbox» в этом дата-файле вместе с существующими полями. Я использовал следующий код.Добавить столбец столбца в wpf datagrid динамически
...
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);
}
}
во время работы этого я получаю следующее исключение "Двустороннее связывание требует Path или XPath".
Не могли бы вы помочь мне включить динамический столбец столбца в существующем столбце datagrid?
Почему вы не добавляете столбцы из xaml. Я имею в виду, есть ли какая-либо конкретная потребность в определении столбцов в коде за кодом C#? –
Да, на основе пользователя, мы показываем столбцы в datagrid. Таким образом, флажок является одним из необходимых столбцов для некоторых пользователей. – AVG
Ошибка ясно, вам нужно определить путь для определения двусторонней привязки, и я не вижу пути, определенного в вашем коде. –