Exemple #1
0
 /// <summary>
 /// 注册对话框元素与ViewModel,注册后可调用CloseByViewModel通过ViewModel关闭所在窗口
 /// </summary>
 /// <param name="content"></param>
 /// <param name="viewModel"></param>
 public static void RegisterClosingByViewModel(UIElement content, object viewModel)
 {
     if (viewModel == null || content == null)
     {
         throw new ArgumentNullException();
     }
     ViewModelViewDict.Add(viewModel, content);
 }
Exemple #2
0
 /// <summary>
 /// 通过已注册的ViewModel关闭关联的ui所在对话框
 /// </summary>
 /// <param name="viewModel"></param>
 public static void CloseByViewModel(object viewModel)
 {
     if (ViewModelViewDict.ContainsKey(viewModel))
     {
         var window = Window.GetWindow(ViewModelViewDict[viewModel]);
         if (window != null)
         {
             window.Close();
         }
         if (window?.IsActive != true)
         {
             if (window.Owner != null)
             {
                 window.Owner.Activate();
             }
             ViewModelViewDict.Remove(viewModel);
         }
     }
 }