Я использую библиотеку WPA MahApps.metro с MVVM. У меня есть ViewModel, из которого мне нужно отобразить диалоговое окно. В MetroWindow есть ShowMessageAsync. Но каков правильный способ доступа к нему из ViewModel? Насколько я понимаю, мне нужен экземпляр View, но передача этого в ViewModel не кажется хорошим подходом.Как получить доступ к методу ShowMessageAsync для MetroWindow из ViewModel
1
A
ответ
1
Используйте следующий подход:
Возьмем
Action<T>
ShowMessageAsync
в вашемViewModel
, которые вы связывании с окном.Теперь создайте поведение для окна и использовать следующий код в поведении
protected override void OnAttached() { base.OnAttached(); this.AssociatedObject.Loaded += AssociatedObject_Loaded; } void AssociatedObject_Loaded(object sender, RoutedEventArgs e) { if (this.AssociatedObject.DataContext is WindowViewModel) { WindowViewModel vm = this.AssociatedObject.DataContext as WindowViewModel; vm.ShowMessageAsync = OnShowMessageAsync; } } private void OnShowMessageAsync(T param) { //Write your logic to call ShowMessageAsync method. }
Теперь, таким образом, от ViewModel
из ваших MainWindow
вы будете иметь возможность открыть еще одно дочернее окно.
Смежные вопросы
- 1. Как получить доступ к ViewModel для просмотра
- 2. Как получить доступ к методу?
- 3. Доступ к TreeView из ViewModel
- 4. Как можно получить доступ к методу NotificationListenerService?
- 5. Как получить доступ к закрытому методу
- 6. Доступ к методу из JSTL
- 7. Как получить доступ к методу из app.component из другого компонента?
- 8. Как получить доступ к методу из фрагмента из другого класса?
- 9. Как получить доступ к методу MembershipProvider.GetPassword
- 10. Как получить доступ к списку ViewModel
- 11. Как получить доступ к управлению в viewmodel
- 12. Как получить доступ к частной собственности/методу?
- 13. Как получить доступ к блоку, переданному методу?
- 14. Как получить доступ к модели-методу?
- 15. Как получить доступ к ViewModel на контроллере
- 16. Как получить доступ к методу вне проекта
- 17. Как получить доступ к методу replace() Doctrine?
- 18. Как позвонить/получить доступ к методу singleton?
- 19. Как получить доступ к новому методу toggleHighlight?
- 20. Как получить доступ к дочернему методу
- 21. Доступ к методу PHP
- 22. Mvvmcross, как получить доступ к ViewModel из моего проекта андроида
- 23. ASP.NET MVC - Как получить доступ к определенному свойству из ViewModel?
- 24. Как получить доступ к методу из базового приложения?
- 25. Как получить доступ к командам usercontrol из viewmodel
- 26. Как получить доступ к методу объекта из другого объекта
- 27. Как получить доступ к нокауту viewmodel из javascript
- 28. Как получить доступ к элементу управления View из ViewModel?
- 29. Как получить доступ к методу в контроллере из директивы
- 30. Как получить доступ к методу контроллера из шаблона jbuilder
Возможный дубликат [Mahapp ShowMessageAsync MvvM] (http://stackoverflow.com/questions/26825250/mahapp-showmessageasync-mvvm) – fuglede