【发布时间】:2015-10-10 18:31:29
【问题描述】:
尝试将一个按钮更改为另一个,我遇到了命令处理问题。很难描述它的来源,因为几乎所有的都是一样的,但是当我通过 setter 传递命令时它不起作用。
我以前的代码(它就像一个魅力): 它只是一个拆分按钮,将其菜单项标题作为参数传递给执行命令。
<xctk:SplitButton.DropDownContent>
<ItemsControl ItemsSource="{Binding Instance.InstanceVM.Names}" x:Name="NamesCtr">
<ItemsControl.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding}" Command="{Binding ElementName=NamesCtr, Path=DataContext.Instance.InstanceVM.Load}" CommandParameter="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</xctk:SplitButton.DropDownContent>
这是我的下拉按钮:
<controls:DropDownButton.DropDownContextMenu>
<ContextMenu x:Name="NamesCtr" ItemsSource="{Binding Instance.InstanceVM.Names}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Template" Value="{StaticResource DropDownMenuItemTemplate}"/>
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="Command" Value="{Binding ElementName=Namestr, Path=DataContext.Instance.InstanceVM.Load}"/>
<Setter Property="CommandParameter" Value="{Binding}"/>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</controls:DropDownButton.DropDownContextMenu>
这显示了一个按钮,一个带有正确菜单项的下拉菜单(因此源、模板和标题已正确绑定,但命令未达到其功能)
在这里找到了解决方案: How do you bind a command to a MenuItem (WPF)?
【问题讨论】: