У меня есть сетка данных, привязанная к объекту наблюдаемой коллекции. Коллекция может быть коллекцией Foo или коллекцией объектов Bar. Foo и Bar имеют разное количество свойств и, следовательно, должны иметь разное количество столбцов в таблице данных.
Из-за этого я динамически создаю столбцы в своей сетке данных:
var cellEditTemplate = new StringBuilder();
cellEditTemplate.Append("<DataTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' >");
cellEditTemplate.Append(
"<CheckBox VerticalAlignment=\"Center\" IsThreeState=\"False\" IsChecked=\"{Binding ");
cellEditTemplate.Append(bindName);
cellEditTemplate.Append(", Mode=TwoWay}\"/>");
cellEditTemplate.Append("</DataTemplate> ");
var dataTemplate = ((DataTemplate) XamlReader.Load(cellEditTemplate.ToString()));
var column = new DataGridTemplateColumn
{
CellEditingTemplate = dataTemplate,
Header = title
};
grdCheckList.Columns.Add(column);
После создания всех шаблонов и добавления их в DataGrid я привязываю данные к DataGrid. Появятся правильные данные. Моя проблема в том, что я не получаю уведомление о том, что флажок установлен.
Если я добавлю
Нажмите = "CheckBox_Checked",
Я получаю следующую ошибку:
Sys. ) в MS.Internal.XcpImports.MethodEx (объект DependencyObject, имя строки) в MS.Internal.XcpImports.DataTemplate_LoadContent (шаблон DataTemplate) в System.Windows.DataTemplate.LoadContent () в System.Windows.Controls.DataCanell.Populate ( forceTemplating, логическое значение isCellEdited, DataGridColumn, dataGridColumn, DataGridRow, dataGridRow, DataGridCell, dataGridCell) в System.Windows.Controls.DataGrid.AddNewCellPrivate (строка DataGridRow, столбец DataGridColumns (столбец DataGridColumn) в System.Windows.Control, столбец данных Controls.DataGrid.GenerateRow (Int32 rowIndex) в System.Windows.Controls.DataGrid.AddRows (Int32 rowIndex, Int32 rowCount) в System.Windows.Controls.DataGrid.RefreshRows (Boolean recycleRows) в System.Windows.Controls.DataGrid.RefreshRowsAndColumns () в System.Windows.Controls.DataGrid.MeasureOverride (Size availableSize) в System.Windows.FrameworkElement.MeasureOverride (IntPtr nativeightTarget, Single inWidth, Single inWidth, Single inWidth, Single inWidth, Single inWidth, Single inWidth, Single inWidth , Single & outHeight)
Любые идеи?
Спасибо,
Рик