#endregion
}
public static CustomDialogResult ShowOkCancleUC<T>(string title, MsgBoxBtn okCancle, out object data) where T : Control
{
Type vmType = typeof(T);
Control content = Activator.CreateInstance(vmType) as Control;
OkCanleWindow window = new OkCanleWindow();
window.ShowInTaskbar = false;
return window.ShowDialog(title, okCancle, content, out data);
}
public static CustomDialogResult MessageBoxDialog(string title, string message, MsgBoxBtn okCancle)
{
OkCanleWindow window = new OkCanleWindow();
window.ShowInTaskbar = false;
object none;
return window.ShowDialog(title, okCancle, new MessageUC() { Message = message }, out none);
}
(1)开始剖析 public static void ShowDiaglogUc<T>(string title, object[] constructors = null, bool isDialog = false) where T : UserControl
ShowDialogUc 是用来在VM中用来创建UserControl并显示在Window中的。你可能会问为啥用windowManager 将窗口缓存起来(PS这里主要还是为了解决单例窗口的麻烦),
至于 下面这段代码,我们可以回到创建的CustomerViewModel中,对这里需要注册VM中CloseEvent事件,这样我们在VM中就可以直接调用OnClose()方法就OK了
-
#region 注册关闭事件
if (content.DataContext as CustomViewModel != null)