WPF 创建命令库
WPF/XAML 新手,希望为我的应用程序构建命令库。我的应用程序的当前版本是“平面”,这意味着背后的所有代码都驻留在我的 MainWindow.cs 文件中。我决定将内容分离到用户控件中,到目前为止,所有 UI 部分都工作得很好,但是……
既然我已经做到了这一点,那么我在将命令绑定到内容时遇到了麻烦。为了简单起见,我创建了一个新的 WPF 项目,添加了我的菜单控件 (Controls\Menu.xaml) 并在我的 MainWindow.xaml 中引用了它。现在,我已经添加了一个 CommandLibrary 类,但似乎没有任何效果。这是我的文件 ->新命令代码:
public static class MyAppCommands
{
private static RoutedUICommand _NewItem;
static MyAppCommands()
{
_NewItem = new RoutedUICommand("Create a new project", "NewItem", typeof(MyAppCommands));
}
public static RoutedUICommand NewItem
{
get { return _NewItem; }
}
private string filePath = null;
private bool dataChanged = false;
public static void NewItem_Executed(object sender, ExecutedRoutedEventArgs e)
{
if (dataChanged)
{
string sf = SaveFirst();
if (sf != "Cancel")
{
ClearState();
}
}
else
{
ClearState();
}
}
public static void NewItem_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
public static void BindCommandsToWindow(Window window)
{
window.CommandBindings.Add(new CommandBinding(NewItem, NewItem_Executed, NewItem_CanExecute));
}
我应该将以下代码放在类中的哪里,因为我的很多命令将使用它们......?
private string filePath = null;
private bool dataChanged = false;
非常感谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您可以从设置一些设计模式(例如 MVC 或 MVVM)中受益。
查看这些框架:
您还可以仅使用几个小帮助程序类来遵循 MVC 或 MVVM,查看网络上的文章,例如这篇文章 MVVM。
如果您想要一个轻量级框架,请选中此选项:MVVM Foundation
I think you could benefit from setting up some design patterns like MVC or MVVM.
Check out these frameworks:
You can also follow MVC or MVVM just using a couple small helper classes, check out ariticles around the web, like this one MVVM.
Check this if you want a light-weight framework: MVVM Foundation