ViewMakerの機能強化

ViewMakerをいろいろ機能強化しました。
主な強化は以下の3点です。
・レイアウト機能の強化
・コントロール設定項目のガイドなどの操作性の向上
・LOB(業務)アプリで利用するイベント用のビヘイビアの追加

レイアウト機能の強化

業務シナリオで作成するような画面を簡単にできるような仕組みをいくつか追加しました。複雑なレイアウトもノンコードで作成できるようにかなりなりました。
特にGrid関連の強化が大きいのですが、タイトルヘッダーの表示位置を「Left・Top・Hidden・Flat」で指定できるようにし、GridレイアウトのSpawn機能も強化しました。Canvasを使えば柔軟な配置はできるのですがWindowのリサイズ対応するためにGridのほうが便利なシナリオも多くあるためです。

TopとLeftなど様々な位置を利用してGridに配置した例です。

コントロール設定項目のガイドなどの操作性の向上

各コントロールで設定できる項目はよく利用するものだけで絞り込んでいます。これは簡単にレイアウトを作成するためや、WPFSilverlightの抽象化をする目的に絞り込んでいます。だだある局面では、より柔軟な設定ができるほうが良いこともあります。この機能をより使いやすくしました。また、各種設定画面の使いやすさも改善しました。(ちなみに、今回いろいろ画面の使いやすさを考えて改善したのですが、レイアウト機能の強化などもあって自動生成しないView(XAML)は2個から1個に減っています。)

LOB(業務)アプリで利用するイベント用のビヘイビアの追加

ViewMakerで前提にしているViewやViewModelの制約はほとんどなく、INotifyPropertyChanged・ICommandの仕組みで動作します。*1
これは、MVVMに独自の仕組みを含めポータビリティを下げることを嫌ったためです。しかし、LOBアプリケーションを作成する場合に必要なフォーカスアウト時の処理や閉じる時の確認処理などあったほうが良いようなものがあります。いろいろ考えた結果以下のビヘイビアをViewMakerでサポートするようにしました。ほとんどがViewの各種イベント発生時にコマンドを動かすものです。
・DataGrid ダブルクリック時のコマンド実行
・Panel(StackPanel・Canvas・Grid)ロード・アンロード時のコマンド実行
・TextBox ロストフォーカス・Enterキー押下時のコマンド実行
・List (ComboBox・RadioButton・)選択アイテム変更時のコマンド実行
・Window Closing時のコマンド実行
・TreeViewの選択時に選択アイテムを設定(以前から用意されていたSilverlight用のビヘイビア)


コマンドはViewModelで定義されたものを利用することができます

*1:WpfGenericResource.xaml、SlGenericResource.xamlにViewMaker用のリソースを定義していますが、いずれもBooleanToVisibilityConverterが定義されているだけです