#wpf #mvvm #wpf-controls #contextmenu
#wpf #mvvm #wpf-элементы управления #контекстное меню
Вопрос:
У меня есть ListBox
который привязан к списку элементов. ListBoxItem
Привязан к datatemplate типа Button
.
При нажатии кнопки я выполняю некоторое действие (отображается другое окно). Итак, я привязался к команде кнопки.
Теперь мое требование состоит в том, чтобы я показывал всплывающее окно (с некоторыми кнопками во всплывающем окне) при правом нажатии кнопки.
Как бы я мог сделать это в MVVM?
- Girija
Ответ №1:
Вы можете просто перехватить MouseUp
событие из ListBox.ItemTemplate
и установить Popup.IsOpen
там:
private void SomeTemplateElement_MouseUp(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Right)
puMyPopup.IsOpen = true;
}
Всплывающее окно — это элемент view, поэтому я не думаю, что есть причина открывать его с помощью команд viewmodel.