使用二维数据和MVVM绑定到DataGrid

时间:2018-08-15 09:56:24

标签: c# wpf mvvm data-binding datagrid

在我的实际项目中,我必须在WPF-DataGrid中显示和修改关于MVVM-Model的多个产品框架尺寸的单位编号。 为此,每个框架尺寸都具有特定年份的多个单位编号。

我的模型具有以下结构:

  1. 帧大小

    class Framesize
    {
        public ObservableCollection<UnitNumber> UnitNumbers { get; set; }
    
        ...
    }
    
  2. 单位编号

    class UnitNumber
    {
        public int Year { get; set; }
        public int Number { get; set; }
    }
    

实际上,这是一个非常简单的二维结构(帧大小x年)。确实,DataGrid布局很难:

所需的布局如下所示:DataGrid Layout。 DataGrid应该能够包含多个框架大小。为此,应该从所有框架大小的最小年份和最长年份中计算出具有年份的列。 这些行应包含框架尺寸标签和相应年份的单位编号。

最重要的是,由于MVVM-Model,DataGrid中的更改应通过绑定自动传递给模型。例如,当用户在特定年份更改某个框架尺寸的单位编号时。

在ViewModel中,我声明了变量UnitNumbersList,该变量通过XAML绑定到DataGrid:

<DataGrid x:Name="dataGrid" Grid.Column="2" Margin="10,45,10,10" ItemsSource="{Binding Path=UnitNumbersList}"/>

现在的问题是,这应该是什么变量?


为此,我考虑了一个DataTable,因为它可以轻松地以编程方式创建。因此,在ViewModel中分配给绑定变量的是生成的DataTable。 可悲的是,我无法将更改后的值传递给模型绑定,因此DataTable方法仅适合显示模型中的值,而不适合我。

那我该如何用一个最好的简单解决方案解决这个问题呢?

0 个答案:

没有答案