今日は2時間位xamlの勉強を頑張った。
詰まった所を備忘録的に書きます。
一つ目がxamlとC#の変数との関連付けについてで、dataGridをコレクションと紐付けていたが、
コレクションを変更してもViewの方が変更されず詰まった。
原因はObservableCollectionを利用していたのだが、ObservableCollectionにはコレクションのアイテムの中身を変更してもViewへの通知がされないということだった。ObservableCollectionのレコード(1行)に対して、挿入、削除、置換えを行った場合にのみViewへの通知が行われる。
また、置き換えにも一応の注意点があり、以下のような書き方は失敗する。
var tmp = ObservableCollectionData[2];
tmp = 5;
ObservableCollectionData[2] = tmp;
原因はObservableCollectionData[2]の先頭アドレスが書き換えられないためだと思われる。
下記のように書くと成功する
var tmp = new ObservableCollection( ObservableCollectionData[2]);
tmp = 5;
ObservableCollectionData[2] = tmp;
参考にしたページは以下です。
http://smdn.jp/programming/netfx/collections/3_objectmodel_2_observablecollection/
もう一つが終了処理についてで、まだ解決しきれていない。
アプリケーションの終了時にファイルにデータを保存するにしたい。WindowクラスにあるClosedイベントを呼び出すことで、終了時に発生するイベントを捕まえることは出来るようになった。
参考にしたページh下記です。
http://simplestar.syuriken.jp/lesson/047_WPFAppStep1.html
現在はClosedイベントを呼び出したMainWindow(View)からMainViewModel(ViewModel)へのアクセスの仕方がまだ、よくわからない。xamlで宣言している以上MainWoindowから読み出せると思うのだけど。
そんな感じでした。思った以上に進まない(T_T)
黄にしたら負けだね。一歩ずつ進めます。
上記は私の私見ですので、間違ったことを書いているかもしれません。
ご指摘板だければ、可能な限り修正致します。
では!!!
0 件のコメント:
コメントを投稿