Фреймворк Catel — заменить вид

Я создаю приложение с несколькими модулями. Каждый из модулей содержит модель представления и представление.

Я хотел бы создать решение для автоматического отображения SelectedModule в части моего приложения.

Предположим, что у меня есть представление MainWindow следующим образом:

<catel:UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:catel="http://catel.codeplex.com" xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduler"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    x:Class="OrchestraCatel.Views.MainWindow">

  <DockPanel LastChildFill="True">
    <ContentControl x:Name="Ribbon" DockPanel.Dock="Top">
<!--      My Ribbon-->
    </ContentControl>
    <ContentControl x:Name="MainView" DockPanel.Dock="Top">
<!--      My Main Page-->
    </ContentControl>
  </DockPanel>
</catel:UserControl>

И я хотел бы показать UserControl, указанный в другой DLL внутри MainView ContentControl после щелчка элемента ленты.

И кнопка ленты, и представление MainView находятся в модуле DLL.

У меня была идея включить SelectedViewModel в мою MainPage ViewModel, а затем создать DataTemplates для каждой ViewModel, но это решение разрушит мое представление о модулях, которые должны быть независимыми.

Есть ли способ в Catel заменить представление другим? Откуда угодно?


person Tomasz    schedule 22.05.2015    source источник


Ответы (1)


Думаю, Prism решит эту проблему за вас. Пожалуйста, взгляните на интеграцию Prism с Catel:

https://catelproject.atlassian.net/wiki/display/CTL/Catel.Extensions.Prism

person Geert van Horrik    schedule 23.05.2015