我正在实施WPF DataGrid
(WPF的新手)。我按照教程展示了如何使用staticresources绑定ComboBoxColumn
。但是,直到运行时才能知道数据网格中几列的数据绑定。
因此,我无法将它们与staticresource绑定。有没有其他方法可以在ComboBoxColumn
中对DataGrid
进行数据绑定?在ASP.NET中,我知道我们有rowdatabound代码,我们可以在这里执行此操作并动态创建列的内容。但是,在WPF中,看起来一切都是通过资源完成的。
如何使用DataGrid
中的动态资源进行数据绑定?
谢谢!
答案 0 :(得分:0)
您可以动态设置绑定。 像这样的东西(这段代码创建网格视图列并分配动态绑定)
private void AddColumn(GridView view, Field fld)
{
GridViewColumn col = new GridViewColumn();
col.Header = fld.Label;
Binding bnd = new Binding();
switch (fld.FieldType)
{
case FieldType.DateTime:
bnd.Converter = new DateTimeToDateStringConverter();
break;
// or some other converters
}
bnd.Path = new PropertyPath(string.Format("Fields[{0}]",
_table._fields.IndexOf(fld))); // the string matches what you would use in XAML
col.DisplayMemberBinding = bnd;
view.Columns.Add(col);
}