C# 如何将CommandBindings xaml代码包含到WPF中的多个视图中?
我是WPF新手,所以我不知道如何在xaml中使用相同的代码(类似于C++中的include)。 我有一段话:C# 如何将CommandBindings xaml代码包含到WPF中的多个视图中?,c#,wpf,xaml,templates,include,C#,Wpf,Xaml,Templates,Include,我是WPF新手,所以我不知道如何在xaml中使用相同的代码(类似于C++中的include)。 我有一段话: <Control.CommandBindings> <CommandBinding Command="routecommand:CommandRoute.AddRecord" CanExecute="CanToolbarAddRecord" Executed="OnToolbarAddRecord" /> <CommandBinding Co
<Control.CommandBindings>
<CommandBinding Command="routecommand:CommandRoute.AddRecord" CanExecute="CanToolbarAddRecord" Executed="OnToolbarAddRecord" />
<CommandBinding Command="routecommand:CommandRoute.EditRecord" CanExecute="CanToolbarEditRecord" Executed="OnToolbarEditRecord" />
<CommandBinding Command="routecommand:CommandRoute.CopyRecord" CanExecute="CanToolbarCopyRecord" Executed="OnToolbarCopyRecord" />
<CommandBinding Command="routecommand:CommandRoute.ExchangeData" CanExecute="CanToolbarExchangeData" Executed="OnToolbarExchangeData" />
<CommandBinding Command="routecommand:CommandRoute.DeleteRecord" CanExecute="CanToolbarDeleteRecord" Executed="OnToolbarDeleteRecord" />
<CommandBinding Command="routecommand:CommandRoute.LoadGridLayout" CanExecute="CanOnLoadGridLayout" Executed="OnLoadGridLayout" />
<CommandBinding Command="routecommand:CommandRoute.SaveGridLayout" CanExecute="CanToolbarDeleteRecord" Executed="OnSaveGridLayout" />
<CommandBinding Command="routecommand:CommandRoute.ResetGridLayout" CanExecute="CanToolbarDeleteRecord" Executed="OnResetGridLayout" />
<CommandBinding Command="routecommand:CommandRoute.ResetAllGridLayouts" CanExecute="CanToolbarDeleteRecord" Executed="OnResetAllGridLayouts" />
</Control.CommandBindings>
<Control.InputBindings>
<KeyBinding Key="Esc" Command="routecommand:CommandRoute.Return" />
<KeyBinding Key="F2" Command="routecommand:CommandRoute.EditRecord" />
<KeyBinding Key="N" Modifiers="Ctrl" Command="routecommand:CommandRoute.AddRecord" />
<KeyBinding Key="Space" Modifiers="Ctrl+Alt" Command="routecommand:CommandRoute.ExchangeData" />
<KeyBinding Key="L" Modifiers="Ctrl+Shift" Command="routecommand:CommandRoute.LoadGridLayout" />
<KeyBinding Key="K" Modifiers="Ctrl+Shift" Command="routecommand:CommandRoute.SaveGridLayout" />
<KeyBinding Key="R" Modifiers="Ctrl+Shift" Command="routecommand:CommandRoute.ResetGridLayout" />
<KeyBinding Key="X" Modifiers="Ctrl+Shift" Command="routecommand:CommandRoute.ResetAllGridLayouts" />
</Control.InputBindings>
我想在很多控件中共享代码。我怎样才能分享,包括。。。代码是否最有效?
谢谢你的帮助。John您可以尝试将其放入资源中,然后创建自定义扩展来使用它,就像这样,当您说“很多控件”时,这是什么意思?这是一个控件的大量实例,因此可能是一个usercontrol。或不同的控制。在这种情况下,一种方法是对contentcontrol进行模板化,这样您就可以将各种控件放置在具有该标记的内容中。或者,这可能是一个窗口中的菜单,如果窗口关闭,您将关闭另一部分中的内容。你能澄清一下这些命令的作用吗?一个候选者可能是一个静态的类,但是,当然,它必须以某种方式被通过,或者计算出它是什么。