如何激活 Catel.MVVM 中的现有视图?

How to activate an existing View in Catel.MVVM?

如何在 Catel 中激活现有视图? IUIVisualizerService.Show() 始终创建一个新视图。我目前在 ViewModel 中使用以下代码,这不太好,因为它依赖于 Window.

private void ShowSomethingExecute() {
  var uiVisualizerService =  this.GetDependencyResolver().Resolve<IUIVisualizerService>();
  var viewManager = this.GetServiceLocator().ResolveType<IViewManager>();

  var testView = viewManager.GetFirstOrDefaultInstance(typeof(TestView));
  if (testView == null) {
    uiVisualizerService.Show(new TestViewModel());
  } else {
    (testView as Window)?.Activate();
  }
}

当前版本无法重新激活 window。但好消息是 Catel 中的一切都是可插入/可替换的,因此您可以轻松提供自己的支持此功能的版本。

或者您也可以创建一个 PR 并在 Catel 中支持它;-)