我已经阅读了 WPF(和一般的 GUI)的一个很好的做法,说要打开尽可能少的窗口。但有时,你根本没有选择。
所以我想到了一个快速优雅的解决方案来打开一个新窗口,我想到了这个:
public static class WinManager
{
private static Dictionary<Type, Func<Window>> collection
= new Dictionary<Type, Func<Window>>();
/* Bind the type of the ViewModel with a lambda that build an
* instance of a window*/
public static void Bind(Func<Window> ctor, Type type) { ... }
/* Search in the dictionary the specified type and show the window
* returned by the lambda*/
public static void Show(Type type){ ... }
/* Search in the dictionary the specified type and show the dialogue
* returned by the lambda*/
public static void ShowDialog(Type type) { ... }
}
type
是绑定到视图(即窗口)的 ViewModel 的类型,lambdactor
用于返回窗口的新实例。
像这样管理窗口是个好主意还是我完全错了?