C# 在xaml中使用自定义RouteDuicCommand会引发异常

C# 在xaml中使用自定义RouteDuicCommand会引发异常,c#,wpf,xaml,C#,Wpf,Xaml,我跟随文章和其他一些人创建了一个定制的RoutedUICommand。 我正在使用基础设施功能区,但我不认为问题来自于此 <igRibbon:XamRibbonWindow x:Class="MyRibbonWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:igRibbo

我跟随文章和其他一些人创建了一个定制的RoutedUICommand。 我正在使用基础设施功能区,但我不认为问题来自于此

<igRibbon:XamRibbonWindow x:Class="MyRibbonWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:igRibbon="http://infragistics.com/Ribbon"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:MyNamespaceTag="clr-namespace:MyNamespace"
xmlns:igWPF="http://schemas.infragistics.com/xaml/wpf" mc:Ignorable="d" 
WindowState="Maximized">    
<igRibbon:XamRibbonWindow.Resources>
<!-- Some DataTempaltes here -->
</igRibbon:XamRibbonWindow.Resources>
<igRibbon:RibbonWindowContentHost x:Name="ribbonWindowContentHost" >
  <igRibbon:RibbonWindowContentHost.Ribbon>
    <igRibbon:XamRibbon x:Name="xamRibbon" Theme="[current]">
      <igRibbon:XamRibbon.ApplicationMenu>
        <igRibbon:ApplicationMenu>
          <igRibbon:ApplicationMenu.FooterToolbar>
            <igRibbon:ApplicationMenuFooterToolbar>
              <igRibbon:ButtonTool Name="appMenuOptions" Caption="Opt_ions"/>
            </igRibbon:ApplicationMenuFooterToolbar>
           </igRibbon:ApplicationMenu.FooterToolbar>
      </igRibbon:ApplicationMenu>
    </igRibbon:XamRibbon.ApplicationMenu>
   </igRibbon:XamRibbon>
  </igRibbon:RibbonWindowContentHost.Ribbon>       
  <ContentControl Content="{Binding MyContent}"
      ContentTemplateSelector="{StaticResource myContentTemplateSelector}" />       
</igRibbon:RibbonWindowContentHost>    
</igRibbon:XamRibbonWindow>
这将正确应用功能区中的样式,但在RibbonResources.xaml中,我们有一个按钮:

<Button Name="myButton" 
    Command="MyNamespaceTag:MyCommands.MyCommand" 
    Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
    <Image Source="MyImage.png" Width="16" Height="16" />
</Button>
我得到以下例外情况:

XamlParseException:提供上的值 “System.Windows.Markup.StaticExtension”引发异常。 InnerException:类型引用找不到名为 “{clr命名空间:MyNamespaces}myCommand”

在后面的代码中,我们像这样绑定命令:

CommandBindings.Add(
    new CommandBinding(
        MyCommands.MyCommand, 
        Show, 
        CanShow));
如果我们将按钮直接放在Xamribbon窗口的位置,它就可以正常工作


我对WPF还是相当陌生,我不知道我做错了什么。

使用
MyNamespace:MyCommands.MyCommand
你走的路是对的。看起来您正在将
MyNamespace
作为“Shell”包含在xaml文件中。在顶部的
igRibbon:XamRibbonWindow
标记中,您应该包含一个
xmlns:MyNamespace=[无论什么]
属性,或者从

MyNamespace:MyCommand.MyCommand


Shell:MyCommands.MyCommand

我使用的实际名称空间是Shell,我在使用Shell时编写了MyNamespace,以使其更易于阅读。我只是错过了那个位置。我会相应地编辑它。
Command="{x:Static MyNamespaceTag:MyCommands.MyCommand}"
CommandBindings.Add(
    new CommandBinding(
        MyCommands.MyCommand, 
        Show, 
        CanShow));