С MVVM и WPF, что было бы хорошим/простым способом справиться с открытием и закрытием новых окон и диалогов? Открытие и закрытие должны управляться правом ViewModel? Но ViewModel не должен знать о представлении ...Как обрабатывать открытие и закрытие новых окон с помощью MVVM?
ответ
Обычно для этого я использую интерфейсы. Например, если я хочу отредактировать запись в отдельном окне, у меня есть интерфейс IEditingProvider <TViewModel>, который я могу реализовать где-то еще, а затем передать ссылку на интерфейс конструктора моего ViewModel. EditingProvider может просто сделать что-то вроде этого:
class MyRecordEditingProvider: IEditingProvider<MyRecordViewModel>
{
// Implementation of generic interface method
public void Edit(MyRecordViewModel model) {
EditWindow edit = new EditWindow();
edit.DataContext = model;
edit.ShowDialog();
}
}
Как вы поддерживаете EditingProviders, которые доступны (определенной части) вашего приложения, и как вы извлекаете правильный экземпляр, который вы в конце концов перейдете к конструктору ViewModel? Полагаю, что это не все жестко, но развязано? – bitbonk
Да, это развязано. Фактически я использую платформу Injection Dependency (составной блок приложений от Microsoft) для сопоставления общих интерфейсов с реализациями. В настоящее время я делаю это в коде, но Unity Container также можно настроить с помощью файла конфигурации. – Botz3000
У вас есть MVVM-совместимое решение для установки свойства 'Owner' вашего EditWindow, прежде чем вызывать ShowDialog? Если Владелец не установлен (например, в MainWindow), модальный диалог может идти за основным окном, которое довольно странно и сбивает с толку с точки зрения пользователя. – Slauma
- 1. Открытие и закрытие окон
- 2. Открытие и закрытие титановых окон надлежащим образом
- 3. Python - tkinter: Открытие и закрытие диалоговых окон
- 4. Открытие и закрытие окон путем вызова функции?
- 5. Открытие нескольких окон с одинаковой моделью просмотра с использованием MVVM
- 6. Закрытие окон с помощью Greasemonkey
- 7. MVVM и списки окон
- 8. Как я могу обрабатывать открытие и закрытие ускорителя iostreams Устройство?
- 9. Как обрабатывать несколько окон и диалогов в MVVM?
- 10. Открытие и закрытие рамки
- 11. Еще одна дискуссия MVVM и открытие/закрытие диалога - Code Behind
- 12. Открытие и закрытие UINavigationController
- 13. Открытие и закрытие StreamWriter
- 14. Список окон и обнаружение новых окон
- 15. Открытие окна с использованием шаблона MVVM
- 16. Закрытие всплывающих окон с помощью Selenium IDE
- 17. Как обрабатывать открытие/закрытие соединения Db в приложении Go?
- 18. Открытие отдельных окон с помощью Start
- 19. Как запустить несколько независимых окон с помощью DialogService в MVVM?
- 20. импортные игры и закрытие окон
- 21. Как мне обрабатывать запрос на закрытие в приложении без окон?
- 22. Открытие/закрытие тегов и производительности?
- 23. Закрытие приложенияWindow и открытие нового?
- 24. Закрытие и открытие порта сразу
- 25. DotNetNuke - Открытие и закрытие деревьев
- 26. Ibeacon кодирование открытие и закрытие
- 27. WPF Несколько окон с MVVM
- 28. закрытие диалога и открытие другого
- 29. Автоматическое открытие и закрытие соединения
- 30. Быстрое открытие и закрытие csv?
Я ответил очень похожий вопрос в [этот пост] (http://stackoverflow.com/a/15512972/385995). –