C# 在xaml中使用自定义RouteDuicCommand会引发异常
我跟随文章和其他一些人创建了一个定制的RoutedUICommand。 我正在使用基础设施功能区,但我不认为问题来自于此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
<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));