Привет,
Я новичок в Prism и WPF, и у меня есть вопрос относительно обмена данными между представлениями.Приложение, над которым я работаю, напоминает SQL Server Development Studio.Демо содержит два региона.Первый регион содержит дерево (как Object explorer в SQL Server DS).Узлы дерева связаны с различными моделями представления.Примером может служить DatabaseA-> Tables-> dbo.TableA-> Columns и т. Д.
Второй регион изначально пуст.Когда я дважды щелкаю на узле дерева, я хотел бы открыть представление, в котором отображаются данные, которые я щелкнул в дереве.
Подробно:
1. Двойной щелчок на узле дерева
2. Данные узла и отображение их во втором регионе.
3. если вторая область не пуста, проверьте, отображаются ли данные об выбранном узле на одной из существующих вкладок
4. если нет, создайте новую вкладку с данными об выбранном узле, в противном случае сфокусируйте существующую вкладку
До сих пор мне удавалось создать дерево.При щелчке узла дерева вызывается приложение:
UriQuery uriQuery = new UriQuery {{"ID", unit.Id.ToString()}};
uriQuery.Add("TypeName", "Unit");
var uri = new Uri("DebugTreeItemView" + uriQuery, UriKind.Relative);
RegionManager.RequestNavigate("SECOND_REGION", uri);
Откроется представление с управлением вкладками, и я смогу получить параметры URI.Но я не удовлетворен этим решением.Мне нужен способ:
1. перехватить этот вызов RegionManager.RequestNavigate, чтобы проверить, создан ли уже элемент управления вкладками.Кроме того, мне нужно проверить, что данные по выбранному узлу еще не отображаются на одной из существующих вкладок.
2. Я хотел бы отправить объект Unit непосредственно в представление управления вкладками вместо отправки ID и typename.Каков наилучший способ достичь этого?
Спасибо.