2011-05-31 168 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