2011年10月21日金曜日

◆Grid行の複数選択を可能にする

以下に解説がある。
How To Enable Multiple Row Selection In LightSwitch's Grids - MSDN サンプル ギャラリー

基本的には前回、以下でやったのと同様な方法でGridコントロールをFindして準備OKになったイベントを拾ってSelectionModeプロパティにDataGridSelectionMode.Extendedを設定してやるというパターンだ。
LightSwitch: ◆ConverterとFocusイベントを使って表示形式をカスタマイズする

SelectionModeプロパティの設定自体は問題ないのだが、サンプルの後半で選択状態に応じてボタンの有効・無効を切り替えている処理はなんとなくメタメタな気がする。

CanExecuteイベントハンドラーで有効無効をBool値で返すだけだと思うのだが、そもそも行選択の状態を変更したときにCanExecuteが発生してくれない。
image

新規行を選択したときに「編集」「削除」ボタンは無効になるのでCanExecuteとは別の仕掛けがあるのだろうか・・・。
image

CanExecute編集用のメニューも、状況に応じて違いがあり混乱する。
imageimage

デフォルトのボタンとユーザー追加したボタンで違うのかとも思ったがそうでも無さそう。(デフォルトのボタンでも画面テンプレートによって違う)

なんとなくどうでも良くなってきたので放置。

 

そもそも、これまではIDEでコントロールのプロパティをポチっと設定するだけでできていたものにたいして此の様な手間をかけるというのは方向性が間違っている。

現時点ではLightSwitchをそのような用途に使うべきでは無いのだろう。

SQLServer Management Studio のデータ参照・更新機能が簡単にカスタマイズ出来る様になった、っと捉えれば非常に便利なツールだ。

それ以上のことをやろうとすると我々一般ユーザーには他の開発ツール以上に敷居が高くなってしまうようだ。

0 件のコメント:

コメントを投稿