C#数据网格编辑单元格MVVM

本文关键字:单元格 MVVM 编辑 网格 数据 数据网 | 更新日期: 2023-09-27 17:58:08

public DataView VariationGrid
    {
        get
        {
            if (_vargrid != null)
            {
                return _vargrid;
            }
            else
            {
                DataTable data = new DataTable();

                #region Columns
                foreach (var param in SelQuestion.QuestionParameters)
                {
                    DataColumn datac = new DataColumn(param.Name);
                    data.Columns.Add(datac);
                }
                #endregion
                #region Rows
                foreach (Variation variation in SelQuestion.Variations)
                {
                    DataRow datarow = data.NewRow();
                    foreach (var parameter in variation.QuestionParameters)
                    {
                        datarow[parameter.Key.Name] = parameter.Value;
                    }
                    data.Rows.Add(datarow);
                }
                #endregion
                return data.DefaultView;
            }
        }
        set
        {
            _vargrid = value;
            RaisePropertyChanged("VariationGrid");
        }

    }

这就是我如何制作DataGrid的ItemsSource。。。正如你所看到的,每一行都是不同的变体,每一列都是QuestionParameters。

这就是我将其绑定到DataGrid:的方式

<DataGrid SelectedIndex="{Binding Path=SelectedRow}" ItemsSource="{Binding Path=VariationGrid}"  AutoGenerateColumns="True" Height="153" HorizontalAlignment="Left" Margin="12,12,0,0" Name="dataGrid3" VerticalAlignment="Top" Width="301" >

现在是我的问题:

当我编辑一个单元格时,它需要更改我选择的变体的问题参数的值。我该怎么做,因为我现在有了。。。

C#数据网格编辑单元格MVVM

您最好创建一个对象图来绑定您的数据网格,然后让该对象图弹出您可以在视图模型中关注的更改事件(通过INotifyPropertyChanged(。