こんにちわ。
WPFのDataGridに、以下のような行を追加しました。
(1)DataGridComboBoxColumn
自作クラス(class A)のObservableCollectionをバインドしています。class Aが動的に追加削除されます。
class Aは、PropertyChangedEventHandlerで反映されるように作ってあります。
(2)DataGridTextColumn
テキストが入力できます。
(3)DataGridComboBoxColumn
string クラスのObservableCollectionをバインドしています。
何が問題になっているのかというと、これらの行について編集などは問題なく行えますが、
(1)~(3)の配列をデータクラスとしてまとめ、シリアライズして保存しているのですが、
デシリアイズした時(2)と(3)は問題なく内容が読み込め、表示されるのですが、(1)のみ空欄になってしまいます。
Class Aの配列の内容には、保存前のデータがちゃんと読み込まれており、表示だけされないという状態です。
Class A とは、下記のような形をしています。
C#
1[DataContractAttribute] 2public class A : INotifyPropertyChanged 3{ 4 public A(int n, string s) 5 { 6 Num = n.ToString(); 7 State = s; 8 } 9 10 public event PropertyChangedEventHandler PropertyChanged; 11 12 private string num = string.Empty; 13 14 [DataMember] 15 public string Num 16 { 17 get { return num; } 18 set 19 { 20 num = value; 21 var h = PropertyChanged; 22 if(h != null) h(this, new PropertyChangedEventArgs("Num")); 23 } 24 } 25 26 private string state = string.Empty; 27 28 [DataMember] 29 public string State 30 { 31 get { return state; } 32 set 33 { 34 state = value; 35 var h = PropertyChanged; 36 if(h != null) h(this, new PropertyChangedEventArgs("State")); 37 } 38 } 39 40 public override string ToString() 41 { 42 return State; 43 } 44}
以上、宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。