如何搭建新的WPF项目框架

2019-12-26 13:02:37丽君
  • #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了   
    1.   #region 注册关闭事件   if (content.DataContext as CustomViewModel != null)