我想将一组数据绑定为DataGrid
. 我们绑定数据的常规方式是绑定属性。但现在我的场景是属性是一个动态集合,它可能与不同的对象实例不同。对于我需要动态创建的每个对象DataGrid
。
在这里,我给出了一个从我的场景中抽象出来的简化的现场示例:
public class Company
{
...
public string CompanyName { set; get; }
public ObservableCollection<CompanyProperty> data;
}
public class CompanyProperty
{
public string PropertyName { get; set; }
public string Value { get; set; }
}
在我的主要课程中,我有一个 ObservableCollection 公司:
class Window
{
private ObservableCollection<Company> _list;
private void CreateData()
{
Company tmp = new Company("Siemens");
tmp.data.Add(new CompanyProperty() { PropertyName = "Country", Value = "Germany" });
tmp.data.Add(new CompanyProperty() { PropertyName = "Staffs", Value = "400,000" });
_list.Add(tmp);
tmp = new Company("ABB");
tmp.data.Add(new CompanyProperty() { PropertyName = "Country", Value = "Swiss" });
tmp.data.Add(new CompanyProperty() { PropertyName = "Staffs", Value = "100,000" });
_list.Add(tmp);
}
}
现在我想将我的数据绑定到一个DataGrid
看起来像 3 列(CompanyName、Country、Staffs)和 2 行(Siemens、ABB)的数据。
我正在努力解决的是如何将公司属性的集合绑定到我的不同列,DataGrid
因为“国家”和“员工”不是“公司”类的属性,而只是ObservableCollection
成员中的值。