當前位置: 妍妍網 > 碼農

C# WPF MVVM模式下在主表單顯示子表單並獲取結果

2024-02-15碼農

01

前言

在winform中開啟一個新的子表單很簡單,直接例項化表單並show一下就可以:

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

或者

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

但是,在wpf的mvvm模式下,這種方法是行不通的,因為邏輯是在viedmodel中寫的,CM框架下viewmodel和view是透過正則自動匹配的。所以正常 是透過呼叫框架下得WindowManager介面,在window後台程式碼中透過WindowManager註冊需要彈出的表單型別,在ViewModel透過WindowManager的Show或ShowDialog方法,顯示出來。

02


ShowDialog用法實作

首先例項化新的子表單 SubShowWindowViewModel ,然後透過CM框架的ioc容器獲取 IWindowManager 介面,透過介面的 ShowDi alog 調出子表單, ControlTestStr 用來顯示子表單的賦值並在界面顯示。

using Caliburn.Micro;using PropertyChanged;namespaceCaliburnTest{ [AddINotifyPropertyChangedInterface]public classControlTestViewModel {publicstring ControlTestStr { get; set; } = string.Empty;publicvoidNewWindowShow() { ControlTestStr = "NewWindowShow"; SubShowWindowViewModel subShowWindowViewModel = new SubShowWindowViewModel(ControlTestStr); IWindowManager windowManager = IoC.Get<IWindowManager>(); windowManager.ShowDialog(subShowWindowViewModel); ControlTestStr = subShowWindowViewModel.SubShowWindowStr; } }}

03


結果演示

ControlTestStr 獲取到了新表單的賦值並顯示到了界面.

04

技術群: 添加小編微信並備註進群

小編微信:mm1552923

公眾號:dotNet編程大全