2011-05-31 163 views
0
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。C#datagrid编辑单元格MVVM

这是我怎么绑定这个给我的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" > 

现在是我的问题:

当我编辑单元格,它需要改变的变化的questionparameter的价值,我已选择。我该如何做到这一点,因为我现在有想法...

回答

0

你可能会更好地创建一个对象图来绑定你的数据网格,然后让该对象图形起泡改变事件(通过INotifyPropertyChanged),你可以在你的视图模型中注意。

+0

但是有没有可能知道哪一行和哪一列发生了变化以及它现在具有哪些值? – Stef 2011-06-01 07:17:05