WPF后台为DataGrid第一列使用DataTemplate和CheckBox配合添加选择功能
//-------------添加选择列
//--dgrid为DataGrid实例对象,Row_Checked是响应事件。
DataGridTemplateColumn dgtc = new DataGridTemplateColumn(); dgtc.Header = "选择"; DataTemplate dt = new DataTemplate(); //定义子元素 FrameworkElementFactory fef = new FrameworkElementFactory(typeof(CheckBox)); binding = new Binding("Check"); fef.SetValue(CheckBox.IsCheckedProperty,binding); fef.SetValue(CheckBox.ForegroundProperty, Brushes.Red);
//关键部分,为每一项添加事件理解AddHandler的用法
fef.AddHandler(CheckBox.CheckedEvent,new RoutedEventHandler(Row_Checked));
dt.VisualTree = fef;//添加子元素
dgtc.CellTemplate = dt;
dgrid.Columns.Add(dgtc);//将第一列添加到数据表
上面一段代码我琢磨了一天,我相信前台XAML能实现的东西,在后台一定可用生成,关键是理解内部结构。前台的一个属性可能是直接写在标签里面就那么简单,
后台可能就要实例对象,配置属性,一层层添加对象,最后添加到主对象完成。