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介面,通過介面的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 獲取到了新表單的賦值并顯示到了界面.
04
—
原始碼下載
鏈接:https://pan.baidu.com/s/18Z340Jma-BYDzDA2QSgePg
提取碼:點擊在看后添加小編微信zls20210502獲取,
技術群:需要進技術群的添加小編微信時切記備注,進群!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/351878.html
標籤:.NET技术
