Как реализовать модальное поведение - PullRequest
0 голосов
/ 10 июля 2010

Я в настоящее время сталкиваюсь с ситуацией, для которой я не могу найти решение:

В приложении WPF я открываю несколько пользовательских элементов управления в tabcontrol. Таким образом, в каждом табите загружены разные вещи (например, клиент, поставщик, товар, склад, ...).

В таблице клиентов я хочу удалить выбранного клиента, поэтому я хочу, чтобы появилось всплывающее окно с подтверждением "Вы хотите удалить клиента?" который является МОДАЛЬНЫМ для ЭТОГО tabitem, предоставляя пользователю возможность выбрать другой tabitem, например. поставщик. Пользователь может выбрать табит поставщика, где он может делать все, что он хочет, но, возвращаясь к табиту клиента, он все равно видит диалоговое окно.

Как это можно реализовать с использованием методов MVVM?

Заранее спасибо

1 Ответ

2 голосов
/ 10 июля 2010

Сделать «модальное окно» UserControl.Его видимость привязана к свойству во ViewModel.

Затем вы можете поместить UserControl в сетку вместе с содержимым вкладки, но с более высоким Z-индексом.Когда свойство сменится на true в виртуальной машине, UserControl «модального окна» станет видимым и полностью закроет содержимое вкладки.Это предотвращает любые манипуляции в этой вкладке, не предотвращая переключение вкладок.

Кстати, это метод, аналогичный тому, который Джош Смит использовал в Advanced MVVM для всех своих диалогов.(Существуют определенные различия, поскольку он не имел дела с элементами с вкладками и т. Д., Но основная идея та же.)

...