优客木子 发表于 2017-11-6 16:03:14

WPF 在CS类中设置DataGridTemplateColumn列以及绑定源

本帖最后由 优客木子 于 2017-11-6 16:08 编辑

按如下代码设置绑定绑定:                                                               var column = new C1.WPF.DataGrid.DataGridTemplateColumn()
                              {
                                    Header = item.ColumnName,
                              };
                              DataTemplate temp = new DataTemplate();
                              Binding bd = new Binding(item.ColumnName);
                              bd.Mode = BindingMode.TwoWay;

                              //生成Grid
                              FrameworkElementFactory grid = new FrameworkElementFactory(typeof(Grid));
                              grid.Name = item.ColumnName;
                              //生成Button
                              FrameworkElementFactory button = new FrameworkElementFactory(typeof(CheckBox));
                              button.SetBinding(CheckBox.IsCheckedProperty, bd);
                              button.AddHandler(CheckBox.ClickEvent, new RoutedEventHandler(CheckBox_Click));
                              grid.AppendChild(button);

                              temp.VisualTree = grid;
                              column.CellTemplate = temp;
                              c1DataGrid1.Columns.Add(column);
给c1DataGrid1 设置ItemsSource 为DataTable的时候,会出现如下异常:FrameworkElementFactory 必须位于此操作的密封模板中。



JeffryLI 发表于 2017-11-6 17:01:48

您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗?

优客木子 发表于 2017-11-6 17:08:01

JeffryLI 发表于 2017-11-6 17:01
您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗?

是一个CehckBox控件

JeffryLI 发表于 2017-11-6 17:13:40

优客木子 发表于 2017-11-6 17:08
是一个CehckBox控件

您好,您是想绑定一列checkbox列,是这个需求吗?

优客木子 发表于 2017-11-6 17:18:08

JeffryLI 发表于 2017-11-6 17:01
您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗?

我的需求是列模板设置为CkeckBox选定列,我会根据这个列确定我是否选择了他,根据选择是true还是False确定。我现在不知道在CS如何给c1datagrid列添加一个模板列的代码。根据网上查到的资料,添加了一个模板列,出现了现在帖子的问题,如果您能给我一个在CS中添加模板列的示例代码 也能帮我解决这个问题。

优客木子 发表于 2017-11-6 17:19:51

JeffryLI 发表于 2017-11-6 17:13
您好,您是想绑定一列checkbox列,是这个需求吗?

是的

JeffryLI 发表于 2017-11-6 17:44:13

本帖最后由 Lenka.Guo 于 2017-11-10 11:38 编辑

优客木子 发表于 2017-11-6 17:19
是的
您好,可以在XMAL文件中设置直接添加模板列就好了,
<c1:C1DataGrid.Columns>
                              <c1:DataGridBoundColumn DefaultAutoWidth="30"/>
                              <c1:DataGridBoundColumn DefaultAutoWidth="30"/>
                              <c1:DataGridCheckBoxColumn Bind=“”/>

                        </c1:C1DataGrid.Columns>可以参照。希望能帮到您。

优客木子 发表于 2017-11-6 17:51:00

JeffryLI 发表于 2017-11-6 17:44
您好,可以在XMAL文件中设置直接添加模板列就好了,

                               


我现在不能在XAML中设置绑定,只能在CS中设置绑定才能解决我的问题,所以出现了这样的问题。

优客木子 发表于 2017-11-6 17:52:53

JeffryLI 发表于 2017-11-6 17:44
您好,可以在XMAL文件中设置直接添加模板列就好了,

                               


如果有CS中设置模版绑定的示例能提供一下,十分感谢。:handshake

JeffryLI 发表于 2017-11-6 18:36:10

优客木子 发表于 2017-11-6 17:52
如果有CS中设置模版绑定的示例能提供一下,十分感谢。

您好,这个我需要写个demo尝试下,最晚明天中午吃饭前给您回复。
页: [1] 2
查看完整版本: WPF 在CS类中设置DataGridTemplateColumn列以及绑定源