Catel框架-替换视图

本文关键字:视图 替换 框架 Catel | 更新日期: 2023-09-27 17:50:25

我正在用多个模块构建应用程序。每个模块包含一个视图模型和视图。

我想创建解决方案,自动显示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,然后,为每个ViewModel创建datatemplate,但这个解决方案将打破我的模块的愿景,这应该是独立的。

在Catel中是否有一种方法可以将视图替换为另一个视图?从任何地方?

Catel框架-替换视图

我认为Prism为您解决了这个问题。请看Prism与Catel的整合:

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