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能实现的东西,在后台一定可用生成,关键是理解内部结构。前台的一个属性可能是直接写在标签里面就那么简单,

后台可能就要实例对象,配置属性,一层层添加对象,最后添加到主对象完成。

posted @ 2016-04-05 17:15  昨天梦想  阅读(2971)  评论(0编辑  收藏  举报