日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發(fā)布時(shí)間:2023/12/4 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# WPF MVVM模式下在主窗体显示子窗体并获取结果 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

01

前言

在winform中打開一個(gè)新的子窗體很簡(jiǎn)單,直接實(shí)例化窗體并show一下就可以:

Form2?f2?=?new?Form2();f2.Show();

或者

Form2?f2?=?new?Form2();f2.ShowDialog();

但是,在wpf的mvvm模式下,這種方法是行不通的,因?yàn)檫壿嬍窃趘iedmodel中寫的,CM框架下viewmodel和view是通過正則自動(dòng)匹配的。所以正常是通過調(diào)用框架下得WindowManager接口,在window后臺(tái)代碼中通過WindowManager注冊(cè)需要彈出的窗體類型,在ViewModel通過WindowManager的Show或ShowDialog方法,顯示出來。

02


ShowDialog用法實(shí)現(xiàn)

首先實(shí)例化新的子窗體SubShowWindowViewModel ,然后通過CM框架的ioc容器獲取IWindowManager接口,通過接口的ShowDialog調(diào)出子窗體,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


結(jié)果演示

ControlTestStr 獲取到了新窗體的賦值并顯示到了界面.

總結(jié)

以上是生活随笔為你收集整理的C# WPF MVVM模式下在主窗体显示子窗体并获取结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。