2

XAMLコードで記述されたWPFListViewコントロールがあります。ContextMenuを右クリックするたびに、ListViewContextMenuアイテムがない場合でもが表示されますListView

これは私が望まない振る舞いです。にContextMenuアイテムがある場合にのみ開く必要がありますListView。アイテムを数えるのに問題はありませんが、を抑制するための適切なイベントが見つかりませんContextMenu

どうやってやるの?

4

2 に答える 2

6

ContextMenuOpeningリストが空の場合にメニューをキャンセルするには、ListViewのイベントを処理します。

    private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
    {
        if (listView.Items.Count == 0)
            e.Handled = true;
    }
于 2009-08-11T14:23:54.430 に答える
0

私の WPF スキルはまだ初心者レベルなので、これが最善の答えではないかもしれません。

ListView ContextMenu プロパティをコード ビハインドのプロパティにバインドします。このプロパティはリストボックスをチェックし、必要に応じて null または適切なコンテキスト メニューを返すことができます。これはすべてビュー レベルの詳細に基づいているため、ビジネス ロジックには影響せず、必要な動作が得られます。

このアプローチのコードサンプルが必要な場合はお知らせください

于 2009-08-11T14:18:54.610 に答える