tus*_*h1r 1 wpf xaml commandbinding
是否可以将多个命令绑定到按钮.
我有一个用户控件,我在我的主应用程序(父应用程序)中调用.
我想在两个控件(用户控件以及主窗口)上处理单击命令.但是我只能得到一个.
有什么方法可以让我得到这个.
任何帮助都非常感谢.
代码片段:
public class MainWindowFooterCommands
{
public static readonly RoutedUICommand FooterClickLocalCommand = new RoutedUICommand("Local Button Command", "FooterClickLocalCommand", typeof(MainWindowFooterCommands));
}
private void MainWindowFooterBindCommands()
{
CommandBinding cmdBindingBXClick = new CommandBinding(MainWindowFooterCommands.FooterClickLocalCommand);
cmdBindingBXClick.Executed += ClickCommandHandler;
CommandBindings.Add(cmdBindingBXClick);
}
void ClickCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
//Do Something
}
//Parent Control holding an instance of the footer control.
class MainWindow {
public MainWindow()
{
CommandBinding cmdBindingBXClick1 = new CommandBinding(MainWindowFooterCommands.BXClickMainWindowCommand);
cmdBindingBXClick1.Executed += LoadParent;
CommandBindings.Add(cmdBindingBXClick1);
}
public void LoadParent(object sender, ExecutedRoutedEventArgs e)
{
LoadParentWindow();
}
}
Run Code Online (Sandbox Code Playgroud)
此致,图萨尔
您可能正在尝试聚合多个命令,这是一件很自然的事情.
如果您正在使用Prism,那么有一个内置的类称为CompositeCommand(向下滚动一下):https://msdn.microsoft.com/en-us/library/ff921126.aspx
否则,Josh Smith有一篇关于他的实现的非常好的文章称为"命令组":http://www.codeproject.com/KB/WPF/commandgroup.aspx
有一些非常好的场景可以像这样汇总(例如,"全部保存").适合你的技巧的好工具.