Общение между несколькими WPF USERCONTROLS в сетке (приложение MVVM)

StackOverflow https://stackoverflow.com/questions/4720435

Вопрос

Привет, я хотел бы увеличить свое приложение, имея дискретные единицы функциональности в UserControls, а затем поместили несколько из них в сетку ContentControls на моей главной странице. Мне нужно быть в состоянии общаться между элементами управления в сетке.

Мне интересно, какой для них лучше всего обмениваться данными. Приложение является дизайном MVVM, причем каждый USERCONTROL имеет свою собственную ViewModel. Каждая из свойств ContentControls ContentControls в каждой основной форме связано с свойством в ViewModel основной формы, которая обеспечивает отображение USERCONTROL в этом ContentControl.

Например, допустим, я хочу улучшенный браузер файлов, поэтому я превращаю его в UserControl. Тогда у меня есть просмотр файлов в другом Usercontrol. Я хотел бы иметь возможность показать их обоим одновременно в сетке в основной форме. Когда я выбираю файл с браузером, я хочу, чтобы выбранный файл был доступен для зрителя usercontrol.

Я использовал этот дизайн, чтобы я мог повторно использовать каждую часть функциональности, где бы мне было нужно в приложении. Мне не ясно, как лучше всего передавать данные между ними, так как в моем дизайне они не знают друг о друге. Любой совет? Спасибо!

Это было полезно?

Решение

Используйте автобус сообщения. Если вы используете MVVM Light взял, например, используйте Встроенная внедрение Imessenger. Анкет Если нет, то это достаточно легко свернуть.

После того, как у вас есть автобус сообщений, вы можете зарегистрироваться для сообщений в одном ViewModel и опубликовать сообщения с другой. Это простой способ общаться (от одного к одному или «трансляции») в виде ViewModels.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top