dbrenth Ответов: 1

Отключение контекстного меню WPF


У меня есть форма WPF со многими элементами управления. Некоторые элементы управления имеют контекстные меню (некоторые встроенные, некоторые я добавил). Я также добавил контекстное меню в базовую сетку представления, чтобы поймать все, что не имеет контекстного меню. Все это прекрасно работает.

Теперь с контекстным меню сетки иногда я вообще не хочу, чтобы оно отображалось (например, когда я нахожусь в режиме редактирования). Проблема в том, что все, что я делаю с контекстным меню базовой сетки, происходит также со всеми другими контекстными меню в представлении. Я хочу, чтобы он применялся только к контекстному меню базовой сетки.

Как я могу отделить одно контекстное меню от всех остальных? К сожалению, событие ContextMenuOpening не говорит мне, какое контекстное меню он пытается открыть. В контекстном меню нет события" открытие". Если я использую "открыто", он мигает.

Есть еще идеи?

Что я уже пробовал:

Включено в проблему выше.

Еще много вещей:
* Загруженное событие-оно с радостью делает его скрытым, а не столько для того, чтобы вернуть его к жизни.
* Свойство видимости-когда я отменяю режим редактирования, появляется контекстное меню. Ему нужно дождаться щелчка правой кнопкой мыши.

1 Ответов

Рейтинг:
2

dbrenth

Решил сам:

Я использовал неправильные свойства в загруженном событии.

private void appHistory_Loaded(object sender, RoutedEventArgs e)
{
    ContextMenu cm = sender as ContextMenu;
    if (cm != null)
    {
        cm.IsOpen = Model.ShowDisplayHistory;
        e.Handled = true;
    }
}