DOBON.NET DOBON.NETプログラミング掲示板過去ログ

WPF DataGrid セルの編集がおかしい

環境/言語:[VisualStudio2010 C# WPF]
分類:[.NET]

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");
}
}

}
No31402 の投稿は悪質ないたずらの投稿です。無視するようにして下さい。

DOBON.NET | プログラミング道 | プログラミング掲示板