首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用caliburn.micro显示2个ViewModels

Caliburn.Micro是一个轻量级的MVVM框架,用于构建WPF、Silverlight和Universal Windows Platform (UWP)应用程序。它提供了一种简单而强大的方式来实现视图和视图模型之间的绑定和导航。

要使用Caliburn.Micro显示两个ViewModels,可以按照以下步骤进行操作:

  1. 创建两个ViewModels:假设我们有两个ViewModels,分别是ViewModelA和ViewModelB。
  2. 创建对应的视图:为每个ViewModel创建对应的视图,例如ViewA和ViewB。
  3. 在App.xaml.cs中配置Caliburn.Micro:在App.xaml.cs文件中,添加以下代码来配置Caliburn.Micro框架:
代码语言:txt
复制
protected override void Configure()
{
    // 注册ViewModels
    container.Singleton<ViewModelA>();
    container.Singleton<ViewModelB>();

    // 注册视图
    ViewLocator.NameTransformer.AddRule("ViewModel$", "View");

    // 设置默认视图
    ViewModelLocator.AddNamespaceMapping("NamespaceOfViewModelA", "NamespaceOfViewA");
    ViewModelLocator.AddNamespaceMapping("NamespaceOfViewModelB", "NamespaceOfViewB");
}

请注意,上述代码中的"NamespaceOfViewModelA"和"NamespaceOfViewModelB"应替换为ViewModelA和ViewModelB的命名空间。

  1. 在主窗口中显示ViewModels:在主窗口的代码中,使用Caliburn.Micro的导航功能来显示ViewModels。例如,在MainWindowViewModel中,可以使用以下代码来显示ViewModelA和ViewModelB:
代码语言:txt
复制
public class MainWindowViewModel : Conductor<object>
{
    private readonly ViewModelA viewModelA;
    private readonly ViewModelB viewModelB;

    public MainWindowViewModel(ViewModelA viewModelA, ViewModelB viewModelB)
    {
        this.viewModelA = viewModelA;
        this.viewModelB = viewModelB;

        ActivateItem(viewModelA); // 显示ViewModelA
    }

    public void ShowViewModelB()
    {
        ActivateItem(viewModelB); // 显示ViewModelB
    }
}

在上述代码中,ShowViewModelB方法用于切换到ViewModelB。

通过以上步骤,我们可以使用Caliburn.Micro框架来显示两个ViewModels,并实现它们之间的导航和切换。

关于Caliburn.Micro的更多信息和详细介绍,您可以参考腾讯云的文档和示例代码:

请注意,以上链接中的内容可能需要翻墙才能访问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# WPF MVVM开发框架Caliburn.Micro快速搭建③

②打开ShellViewModel.cs并使用以下代码进行实现: using System.Windows; namespace Caliburn.Micro.Hello.ViewModels {...您可以使用以下一小段代码: namespace Caliburn.Micro.Hello { public class HelloBootstrapper : BootstrapperBase...“根视图模型”是Caliburn.Micro将实例化并用于显示应用程序的视图模型。 接下来,我们需要实现“HelloBootstrapper”,以便它在启动时运行。...您现在应该可以看到UI: 在文本框中键入内容将启用该按钮,单击该按钮将显示一条消息: 03 工作原理 Caliburn.Micro使用一个简单的命名约定来定位ViewModels的视图。...因此,给定:MyApp.ViewModels.MyViewModel 它将查找:MyApp.Views.MyView 并排查看视图和ViewModel,可以看到带有x:Name=“Name”的文本框绑定到

1.5K20

WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了。...比如本文将介绍如何使用Caliburn.Micro v3.2开发出一个简单的计算器,里面用到了C#中的async异步技术,Caliburn.Micro中的Conductor等等~ >>>1.在VS中创建...WPF项目<<< >>>2.使用NuGet包管理工具为当前项目安装Caliburn.Micro <<< 对于Caliburn.Micro 1.x和2.x版,只能使用.dll,需手动给项目加Reference...using System.Windows; using Caliburn.Micro; using CaliburnMicro_Calculator.ViewModels; namespace CaliburnMicro_Calculator...; using System.Windows; using System.Windows.Controls; using Caliburn.Micro; namespace CaliburnMicro_Calculator.ViewModels

4.2K10

从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了。...Caliburn.Micro是一个轻量级的WPF框架,简化了WPF中的不少用法,推荐做WPF开发时优先使用。...比如本文将介绍如何使用Caliburn.Micro v3.2开发出一个简单的计算器,里面用到了C#中的async异步技术,Caliburn.Micro中的Conductor等等~ Step 1: 在VS...Step 2: 使用NuGet包管理工具为当前项目安装Caliburn.Micro 对于Caliburn.Micro 1.x和2.x版,只能使用.dll,需手动给项目加Reference。...using System.Windows; using Caliburn.Micro; using CaliburnMicro_Calculator.ViewModels; namespace CaliburnMicro_Calculator

1.2K20

C# WPF MVVM开发框架Caliburn.Micro入门介绍①

例如,如果您的VM名为MyApplication.ViewModels.ShellViewModel,我们将查找MyApplication.Views.ShellView。...Window Manager窗口管理器 此服务提供以视图模型为中心的窗口显示方式(Silverlight中的ChildWindow、WPF中的Window、Windows Phone中的自定义本机样式主机...只需向它传递一个VM实例,它就会找到视图,必要时将其包装在窗口中,应用您配置的所有约定并显示窗口。...如果您更喜欢使用监控控制器和被动查看而不是MVVM,请继续。你会发现Caliburn.Micro可以帮助你很多,特别是它的Screen/ScreenConductor实现。...您可以开始使用Caliburn.Micro进行开发,然后,如果您遇到边缘情况或有其他需要转移到Caliburn,您将能够在应用程序中进行少量更改或不进行任何更改。

1.7K20

【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro使用基于WPF的改造的MVVM案例

文章目录 前言 1.Caliburn.Micro是什么 2.Caliburn.Micro的主要功能 一、Caliburn.Micro使用基于WPF的改造 1.项目介绍 2.安装软件包 3.改造App...支持Windows Phone和Silverlight平台 Caliburn.Micro 的Github网址:https://github.com/Caliburn-Micro/Caliburn.Micro...Caliburn.Micro 官网:https://caliburnmicro.com/ 一、Caliburn.Micro使用基于WPF的改造 1.项目介绍 HelloWorld:框架的搭建...、容器注入相关 HelloWorld.Core;放置数据模型,即mvvm中的M HelloWorld.ViewModels:模型视图,即VM HelloWorld.Views:V,即视图 本项目是基于...."HelloWorld"), Assembly.Load("HelloWorld.Views"), Assembly.Load("HelloWorld.ViewModels

99220

C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦

虽然这些模式主要通过从特定基类继承ViewModels来在CM中使用,但将它们视为角色而不是视图模型是很重要的。事实上,根据您的体系结构,屏幕可以是用户控件、演示者或视图模型。不过这有点超前了。...Caliburn.Micro实现 这些概念通过各种接口和基类在CM中实现,这些接口和基类主要用于构建ViewModels。...如果屏幕不是由导体控制的,而是独立存在的(可能是因为它是使用WindowManager显示的),此方法将尝试关闭视图。...为了更好地使用ViewModels,WP7版本的CM有一个FrameAdapter,它与NavigationService挂钩。...同一ViewModel上的多个视图 您可能不知道这一点,但是Caliburn.Micro可以在同一个ViewModel上显示多个视图。

2.5K20

C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧

为此,CM使用一个简单的命名模式来查找UserControl1,它应该绑定到ViewModel并显示它。那么,这种模式是什么?...因此ViewModels.CustomerViewModel将成为Views.CustomerView。...事实上,在WPF中,引导程序将此委托给WindowManager,这使我想到……ViewLocator使用的第二个位置是WindowManager,它调用它来确定任何对话框ViewModels应如何呈现...框架使用 ViewModelBinder用于Caliburn.Micro内部的三个位置。第一个位置是View.Model附加属性的实现内部。...但是,了解这些约定是什么以及在整个框架中如何使用它们是很重要的。在本文的最底部是一个代码列表,它显示了如何开箱即用地配置所有元素。

2.7K20

C# 值得永久收藏的WPF项目实战(经典)

01 简介 之前也写过好多篇CM框架相关的项目实战文章,比如: C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战...(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF...mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅 但是可能这些都是把一个综合性的项目分多个部分分别讲述的...其次,因为没有整体的构思,随着内容的增加,项目越来越显得笨重和凌乱,所以今天我重新搞了一个项目,希望以尽量少的代码,涵盖尽量多的知识点,帮助大家更好的理解和使用CM框架。...,选择那个就激活那个 ②ShellViewModel.cs类: 从ioc容器获取一个IWindowManager并显示

4.7K10

C# 修改配置文件进行窗体logo切换

题外的话 大家可能发现这个号现在原创越来越少了,其实小编并没有放弃持续更新,只是把一手原创放到了 【dotnet编程大全】这个号了,那个号目前原创主要更新的是wpf mvvm方面的知识,框架用的Caliburn.Micro...有兴趣学习的可以关注: 相关经典原创文章链接:点击可以查看原文 C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM...项目实战(进阶②) C# WPF项目实战 C# WPF mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式下在主窗体显示子窗体并获取结果...C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview...、datagrid、GridControl增加行号 C# =>符号的使用 C# 无意间写了一段线程死锁的代码 C# 看懂这100+行代码,你就真正入门了(经典) C# WPF项目实战(经典)

1.1K00

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券