Привязка команды к текстовому тексту дочернего окна - PullRequest
0 голосов
/ 18 мая 2011

У меня есть окно с именем MAINWINDOW, в котором есть панель инструментов и рамка.Внутри рамки показана страница с именем HOMEPAGE.Эта страница имеет древовидную структуру, где отображаются пункты меню.Когда пользователь щелкает узел, соответствующая форма (страница) отображается внутри границы в HOMEPAGE с использованием свойства Border.Content.У меня есть кнопка на панели инструментов для поиска клиентов, и мне нужно привязать свойство команды этой кнопки к команде, которая определена внутри модели представления страницы «Клиенты».Эта страница является дочерней страницей HOMEPAGE, которая, в свою очередь, является дочерней страницей MAINWINDOW.Можете ли вы предложить способ сделать это, то есть получить доступ к команде, определенной в дочернем объекте ребенка?Спасибо.

1 Ответ

0 голосов
/ 19 мая 2011

Это идет вразрез с принципами MVVM.

ViewModels (и соответствующие им команды) - это 1: 1 для Views.Каждая ViewModel обслуживает только один вид и один вид.Это помогает думать о ViewModel как о codeBehind of View, только то, что он никогда не может получить доступ к View напрямую (таким образом, он полностью отделен от него).

Нарушение этого принципа (V к VM == 1: 1), создает зависимости между ViewModels или между Views, что является плохой вещью.Это усложняет обслуживание вашего приложения, поскольку каждый «модуль» зависит от реализации других «модулей».

Что вам нужно сделать, это выставить другую команду на ViewModel, которая обслуживает соответствующий View.Эта команда в свою очередь может вызвать то, что вы хотите.

...