WPF: Вызов метода в представлении из viewModel

Я использую AvalonDock в приложении WPF, и мне нужно сохранить макет AvalonDock, настроенный пользователем (перемещение, стыковка, отсоединение панелей).

Функции для этого находятся в самом элементе управления (SaveLayout, RestoreLayout).

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

] Прямо сейчас у меня есть команда в mainWindowViewModel, которая создается приложением при создании экземпляра оконного представления и viewmo. del. Это в основном заставляет команду relay вызывать анонимный метод, который вызывает необходимую функцию в элементе управления представлением. Это работает, поскольку приложение создает для него окно и модель просмотра.

Но как я могу подойти к этому, если это должно было сделать какое-то представление более низкого уровня и модель просмотра? Если бы я использовал этот метод, мне все равно пришлось бы создавать команду на уровне приложения и отправлять ее через viewModels туда, где она должна быть привязана? Внутри него мне пришлось бы искать пользовательский элемент управления, который является представлением, а затем элемент управления avalonDock внутри него и использовать его на уровне приложения, что подвержено ошибкам. Почему-то это кажется грязным ...

Спасибо!

8
задан Marino Šimić 18 June 2011 в 11:07
поделиться