第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > C# WPF MVVM模式下在主窗体显示子窗体并获取结果

C# WPF MVVM模式下在主窗体显示子窗体并获取结果

时间:2023-08-22 01:57:51

相关推荐

C# WPF MVVM模式下在主窗体显示子窗体并获取结果

01

前言

在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以:

Form2f2=newForm2();f2.Show();

或者

Form2f2=newForm2();f2.ShowDialog();

但是,在wpf的mvvm模式下,这种方法是行不通的,因为逻辑是在viedmodel中写的,CM框架下viewmodel和view是通过正则自动匹配的。所以正常是通过调用框架下得WindowManager接口,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show或ShowDialog方法,显示出来。

02

ShowDialog用法实现

首先实例化新的子窗体SubShowWindowViewModel ,然后通过CM框架的ioc容器获取IWindowManager接口,通过接口的ShowDialog调出子窗体,ControlTestStr 用来显示子窗体的赋值并在界面显示。

using Caliburn.Micro;using PropertyChanged;namespace CaliburnTest{[AddINotifyPropertyChangedInterface]public class ControlTestViewModel{public string ControlTestStr { get; set; } = string.Empty;public void NewWindowShow(){ControlTestStr = "NewWindowShow";SubShowWindowViewModel subShowWindowViewModel = new SubShowWindowViewModel(ControlTestStr);IWindowManager windowManager = IoC.Get<IWindowManager>();windowManager.ShowDialog(subShowWindowViewModel);ControlTestStr = subShowWindowViewModel.SubShowWindowStr;}}}

03

结果演示

ControlTestStr 获取到了新窗体的赋值并显示到了界面.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。