|
分類:[C#]
2013/03/12(Tue) 13:56:24 編集(投稿者) 2013/03/12(Tue) 13:56:06 編集(投稿者)
言語: 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"); } } … }
|