2011-01-18 2 views
2

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

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

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

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

ответ

2

Используйте автобус сообщения. Если вы используете, например, MVVM Light Tookit, используйте in-built IMessenger implementation. В противном случае, вы можете легко сворачивать свои собственные.

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

+0

Отличная информация Мэтт очень благодарен, заглянет в него. – TripleAntigen

Смежные вопросы