【发布时间】:2014-06-12 04:14:18
【问题描述】:
我有一个基类(WPF 窗口)的设计(xaml)和代码。
我想继承这个类,不是为了修改这个窗口的设计,只是为了修改代码。
例如,我有一个登录窗口,它是我的基类,它有一个用户名文本框、密码文本框和登录按钮。
此外,它还有处理登录的代码。
现在,我想实现这个对话框的 2 个基类:
针对表 X 进行身份验证。
针对表 Y 进行身份验证。
我认为我可以如下设计我的基本对话框:
... BaseLoginWnd : Window
{
...
void Login_Click(...) // This method is implemented as a Template Method (Design pattern)
{
...
if (Authenticate())
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failure");
}
...
}
abstract bool Authenticate();
}
我会提到,我知道这不是这个特定示例的最佳设计(最好创建一个单独的类来执行登录),但这只是一个示例。
所以我的问题是 - 如何使用基类的设计从窗口继承?
【问题讨论】:
-
你试过什么?你见过this question吗?
-
UI 不适合放置与身份验证相关的代码。从后面的代码中删除所有这些,并创建一个适当的 ViewModel 和服务层,并将每个责任放在它所属的地方。您无需为此创建任何 UI 元素的子类,因为 UI 与您在此处所做的事情无关。
标签: c# wpf visual-studio design-patterns user-interface