昨日
WPF で ContextMenu
が必要になったので作ってみたら、意外と苦労せず書けるのね。メモメモ~
<TabControl Name="TabControl" IsSynchronizedWithCurrentItem="True" Margin="2,2,2,0">
<TabControl.ContextMenu>
<ContextMenu>
<MenuItem Name="aMenuItem" Header="AAAA" />
<MenuItem Name="bMenuItem" Header="BBBB" />
<MenuItem Header="SUB">
<MenuItem Name="cMenuItem" Header="CCCC" />
<MenuItem Name="dMenuItem" Header="DDDD" />
</MenuItem>
</ContextMenu>
</TabControl.ContextMenu>
</TabControl>
サブメニューも XAML だと直感的に書ける
this.aMenuItem.Click+= (s, e) => this.MethodA();
this.bMenuItem.Click+= (s, e) => this.MethodB();
this.cMenuItem.Click+= (s, e) => this.MethodC();
this.dMenuItem.Click+= (s, e) => this.MethodD();
呼び出す時は、イベントハンドラをゴリッと書きます。
これは、普段通りですね。
ちなみにラムダ式慣れていない人は、こんな感じで書けるものだと思ってもらえばOKです。
this.aMenuItem.Click+= (s, e) => Message.Show("素敵だし爽やか!");
(s, e) で、sender オブジェクトと EventArgs オブジェクトも取得できます。