我正在构建具有多个模块的应用程序。每个模块都包含一个 View 模型和一个 View 。

我想创建解决方案,以便在我的应用程序的一部分中自动显示SelectedModule。

假设我有这样的MainWindow View :

<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>

我想显示功能区项目单击后在MainView ContentControl中的另一个DLL中指定的UserControl。

功能区按钮和MainView View 都在模块DLL中

我有一个想法,要在自己的SelectedViewModel ViewModel中包含MainPage,然后为每个ViewModel创建DataTemplates,但是这种解决方案将破坏我对Modules(应该是独立的)的愿景。

卡特尔(Catel)中有一种方法可以用另一个 View 替换 View ?从任何地方?

最佳答案

我认为Prism为您解决了这个问题。请看一下Prism与Catel的集成:

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

关于c# - Catel框架-替换 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30406539/

10-11 02:01