WPF: подавить ContextMenu для ListView - PullRequest
2 голосов
/ 11 августа 2009

У меня есть элемент управления WPF ListView с ContextMenu, написанным в коде XAML. При каждом щелчке правой кнопкой мыши на ListView отображается ContextMenu, даже если в ListView.

нет элементов.

Это поведение, которое я не хочу. ContextMenu должен открываться, только если в ListView есть элементы. У меня нет проблем с подсчетом предметов, но я не могу найти подходящее событие для подавления ContextMenu.

Как я могу это сделать?

Ответы [ 2 ]

6 голосов
/ 11 августа 2009

Обработка события ContextMenuOpening ListView для отмены меню, если список пуст:

    private void listView_ContextMenuOpening(object sender, ContextMenuEventArgs e)
    {
        if (listView.Items.Count == 0)
            e.Handled = true;
    }
0 голосов
/ 11 августа 2009

Мои навыки WPF все еще находятся на уровне новичка, так что это может быть не лучшим ответом.

Я бы связал свойство ListView ContextMenu со свойством в выделенном фрагменте кода. Это свойство может проверить ваш список и вернуть либо ноль, либо соответствующее контекстное меню по мере необходимости. Поскольку все это основано на деталях уровня представления, оно не затрагивает вашу бизнес-логику и приводит к желаемому поведению.

Дайте мне знать, если вы хотите пример кода для этого подошел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...