XAMLコードで記述されたWPFListView
コントロールがあります。ContextMenu
を右クリックするたびに、ListView
にContextMenu
アイテムがない場合でもが表示されますListView
。
これは私が望まない振る舞いです。にContextMenu
アイテムがある場合にのみ開く必要がありますListView
。アイテムを数えるのに問題はありませんが、を抑制するための適切なイベントが見つかりませんContextMenu
。
どうやってやるの?
XAMLコードで記述されたWPFListView
コントロールがあります。ContextMenu
を右クリックするたびに、ListView
にContextMenu
アイテムがない場合でもが表示されますListView
。
これは私が望まない振る舞いです。にContextMenu
アイテムがある場合にのみ開く必要がありますListView
。アイテムを数えるのに問題はありませんが、を抑制するための適切なイベントが見つかりませんContextMenu
。
どうやってやるの?
ContextMenuOpening
リストが空の場合にメニューをキャンセルするには、ListViewのイベントを処理します。
private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
if (listView.Items.Count == 0)
e.Handled = true;
}
私の WPF スキルはまだ初心者レベルなので、これが最善の答えではないかもしれません。
ListView ContextMenu プロパティをコード ビハインドのプロパティにバインドします。このプロパティはリストボックスをチェックし、必要に応じて null または適切なコンテキスト メニューを返すことができます。これはすべてビュー レベルの詳細に基づいているため、ビジネス ロジックには影響せず、必要な動作が得られます。
このアプローチのコードサンプルが必要な場合はお知らせください