言語: VisualStudio2010 C# WPF
DataGridのセルの編集で困っています。少しわかりづらいかも知れませんがお願いします。
編集モードで選択したセルのデータが他のセルの編集モードに切り替わったときに表示されてしまい、そのセルのもともとあったデータが上書き表示されてしまいます。
例としては、
初期状態:セルA{ コンボA(DataA選択中)、コンボB(DataB選択中)}
セルB{ コンボA(DataA選択中)、コンボB(DataB選択中)}
セルAを{コンボA(DataC選択中)、コンボB(DataD選択中)}に変更し編集モードを抜ける。
するとセルBで編集モードに入るときセルBの初期状態データが
セルB{ コンボA(DataC選択中)、コンボB(DataD選択中)}というように表示されてしまう。
なぜこのようになるのかがわかりません。
コードは以下のような感じです。
DataGridTemplateColumn.CellTemplateでTextBlockを二つ、
DataGridTemplateColumn.CellEditingTemplateでComboBoxを二つ縦に並べます。
ItemsSource="{Binding ListA}"、SelectedValue="{Binding ValA_1}",
ItemsSource="{Binding ListB}"、SelectedValue="{Binding ValB_1}"をバインドし、
DisplayMemberPath、SelectedValuePathを設定しました。
同じ列を
ItemsSource="{Binding ListA}"、SelectedValue="{Binding ValA_2}"
ItemsSource="{Binding ListB}"、SelectedValue="{Binding ValB_2}" …… のように5列つくり
DataGridのItemsSource="{Binding list_Data}"をバインドしました。
list_Dataのなかは以下のような感じです。
List<ClassA> list_Data{get;set;}
public class ClassA : INotifyPropertyChanged
{
public IList ListA{ get; set; }
public IList ListB{ get; set; }
private string _ValA_1;
private string _ValB_1;
private string _ValA_2;
private string _ValB_2;
…
public string ValA_1
{
get { return _ValA_1; }
set
{
_ValA_1 = value;
NotifyPropertyChanged("ValA_1");
}
}
…
}