Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将CommandBindings xaml代码包含到WPF中的多个视图中?_C#_Wpf_Xaml_Templates_Include - Fatal编程技术网

C# 如何将CommandBindings xaml代码包含到WPF中的多个视图中?

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

我是WPF新手,所以我不知道如何在xaml中使用相同的代码(类似于C++中的include)。 我有一段话:

<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进行模板化,这样您就可以将各种控件放置在具有该标记的内容中。或者,这可能是一个窗口中的菜单,如果窗口关闭,您将关闭另一部分中的内容。你能澄清一下这些命令的作用吗?一个候选者可能是一个静态的类,但是,当然,它必须以某种方式被通过,或者计算出它是什么。