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 必须位于此操作的密封模板中。
您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗? JeffryLI 发表于 2017-11-6 17:01
您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗?
是一个CehckBox控件 优客木子 发表于 2017-11-6 17:08
是一个CehckBox控件
您好,您是想绑定一列checkbox列,是这个需求吗? JeffryLI 发表于 2017-11-6 17:01
您好,您的需求是不是在模板列绑定了数据还要再添加一个button按钮,是这个需求吗?
我的需求是列模板设置为CkeckBox选定列,我会根据这个列确定我是否选择了他,根据选择是true还是False确定。我现在不知道在CS如何给c1datagrid列添加一个模板列的代码。根据网上查到的资料,添加了一个模板列,出现了现在帖子的问题,如果您能给我一个在CS中添加模板列的示例代码 也能帮我解决这个问题。 JeffryLI 发表于 2017-11-6 17:13
您好,您是想绑定一列checkbox列,是这个需求吗?
是的 本帖最后由 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>可以参照。希望能帮到您。 JeffryLI 发表于 2017-11-6 17:44
您好,可以在XMAL文件中设置直接添加模板列就好了,
我现在不能在XAML中设置绑定,只能在CS中设置绑定才能解决我的问题,所以出现了这样的问题。 JeffryLI 发表于 2017-11-6 17:44
您好,可以在XMAL文件中设置直接添加模板列就好了,
如果有CS中设置模版绑定的示例能提供一下,十分感谢。:handshake 优客木子 发表于 2017-11-6 17:52
如果有CS中设置模版绑定的示例能提供一下,十分感谢。
您好,这个我需要写个demo尝试下,最晚明天中午吃饭前给您回复。
页:
[1]
2