如何激活 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 中支持它;-)
如何在 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 中支持它;-)