お世話になります。
WPFでDataGridのセルを右クリックした際メニューが表示されるシステムを作っています。
現在、コンテキストメニューを用いてメニュー表示をさせることはできたのですが、
ヘッダーを右クリックした場合にも、表示されてしまいます。
これをセル上でのみ表示させるにはどうしたらよろしいでしょうか?
原則右クリックイベント処理はViewModel上のCommandを用いて呼び出しています。
EventSetterにCommandを記述できないため、
代わりにInvokeCommandActionでCommandを指定しています。
###該当のソースコード
<DataGrid x:Name="DataGrid1" IsReadOnly="True" AutoGenerateColumns="False" FrozenColumnCount="1" ItemsSource="{Binding ProfileModel}" SelectedItem="{Binding SelectedEmployee,Mode=TwoWay}"> <DataGrid.Resources> <!--右クリックで表示されるメニュー--> <ContextMenu x:Key="DataGridContextMenu"> <MenuItem Header="メニュー1" Command="{Binding CmdMenu1}"/> <MenuItem Header="メニュー2" Command="{Binding CmdMenu2}"/> <MenuItem Header="メニュー3" Command="{Binding CmdMenu3}"/> </ContextMenu> </DataGrid.Resources> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseRightButtonUp"> <i:InvokeCommandAction Command="{Binding CmdMouseRightButtonUp}" CommandParameter="{Binding ElementName=DataGrid1}"/> </i:EventTrigger> </i:Interaction.Triggers> (以下略)
###補足情報(言語/FW/ツール等のバージョンなど)
言語:WPF/C#
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/28 05:51