2014年7月29日火曜日

VB WPF お勉強 05 Loaded イベントハンドラ

Form では、デザイナーから コントロールの配置されていない部分を叩き、
Form の Load イベントハンドラを作成していました。 イベントは MyBase.Load でしたね。
Window(WPF) では、同じ事をしても、自動でハンドラのソースに移ってくれません。
ソースコード .xaml.vb に切り替えて、イベントから Loaded を選ばないと ... です。  [初心者の悪あがきぃレベル] です。.


実は、Form を使っていた時は、次の方針で書いていました。

  固定して表示するだけの Label 類は、デザイナーの中から、テキストや色や大きさを指定。  コードには書かない。
  入力や編集や表示をソースから変更するものは、極力、ソースで記述。  デザイナーでは標準状態のまま。

  これは、デザイナーでの変更を極力避けて、標準状態のコントロールの配置のみにしておき、
  個々のコントロールのプロパティ指定は、なるべく、コードに書く  という方針です。

  例外は、TextBox の MultiLine や ListView DataGridView の表示サイズです。
  配置するときのイメージを掴む為、デザイナーとコードと両方に、あえて、重複して指定・記述する事もあります。


さて、 Window(WPF) では、冒頭に書いた様に、
ソースコード .xaml.vb に切り替えて、イベントから Loaded を選ばないといけません。

想像ですが、画面設計と処理を分離する Window(WPF) では、
Loaded イベントで記述するべき内容は少ない筈、という位置付けなのでしょうか。
画面設計が、表示以外の処理系もバインドによって含められる様になった WPF では、
簡単な処理ならば、画面のみ(XAML)でも完結出来る程の柔軟さがある様ですから。

どの様な形で、画面と処理とを分離するかは、様々な方法論があるでしょうし、
MVVM(Model-View-ViewModel) とか 専門的な単語が 出て来て、混乱しそうですね。
バインディングを使って WPF の有効性を享受する為の これらの技術は、
もう少し WPF が書ける様になったら 再び でいい気がします。
最初は、先ず、WPF でコードを書くのに慣れる事が大切 な気がしています。
  特に、独自のクラスを書いた事のない方には、MVVM は敷居が高すぎる気もしますし ... 。


とりあえず、Window を表示する前に何か処理をしたいと思ったら、
(最初のうちは) Loaded イベントハンドラを用意して、
其処に、何がしらかの前処理を入れる と覚えて置いて下さい。

こうする事で、とりあえず、Form の頃と同じ様な感覚で書いて行く事が出来ますね。
但し、この書き方( Loaded イベントハンドラに window の初期化を書く事 )が良いのか否かは、.... 分りません。
WPF の仕組みやガイダンスに沿っているか否かが不明だからです。
その点だけは、頭の片隅に置いておいて下さい。



次の投稿の最後にシリーズのリンクを纏めてあります。   VB WPF お勉強 01 印象



0 件のコメント:

コメントを投稿