DOBON.NETプログラミング掲示板過去ログ
WPF DataGrid セルの編集がおかしい
題名: WPF DataGrid セルの編集がおかしい
著者: CC
日時: 2013/03/13 14:43:11
ID: 31402
この記事の返信元:
(なし)
この記事への返信:
[31410]
【注意】悪質ないたずらの投稿です
管理人
2013/03/14 5:01:57
ツリーを表示
環境/言語:[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");
}
}
…
}
題名: 【注意】悪質ないたずらの投稿です
著者: 管理人
日時: 2013/03/14 5:01:57
ID: 31410
この記事の返信元:
[31402]
WPF DataGrid セルの編集がおかしい
CC
2013/03/13 14:43:11
この記事への返信:
(なし)
ツリーを表示
No31402 の投稿は悪質ないたずらの投稿です。無視するようにして下さい。
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.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");
}
}
…
}