0

我想将一组数据绑定为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成员中的值。

4

1 回答 1

0

经过一番调查,我自己想出了一个解决方案,即创建一个 DataTable 将集合数据传输到 DataTable(我们可以轻松地将值更改为 DataTable 中的不同列)。

然后,我们将 DataTable 绑定到数据网格,而不是绑定“ObservableCollection _list”。这似乎有效。

而且我仍然很想知道是否有人为这种情况提供了其他或更好的解决方案?

于 2013-10-25T05:19:42.563 回答