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編程大全