我有以下代码,其中DeleteBelegkopfCommand在单击MenuItem时没有响应:
[...]
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<Image Margin="0,0,2,2"
Source="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TreeViewItem}},
Path=Header, Converter={x:Static conv:HeaderToImageConverter.Instance}}"/>
<TextBlock Text="{Binding BelegtypDesc, StringFormat='Beleg: {0}'}"
acb:LeftClickCommands.MouseEventParameter="{Binding}"
acb:LeftClickCommands.MouseLeftButtonClickCommand="{Binding ElementName=CaseTreeView, Path=DataContext.ChangeSelectionCommand}">
</TextBlock>
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="Beleg löschen"
Command="{Binding Path=PlacementTarget.Tag.DataContext.DeleteBelegkopfCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"
CommandParameter="{Binding Path=CurrentBelegkopf.Id}">
</MenuItem>
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
这是我定义命令的地方。 CanDeleteBelegkopf始终适用于测试:
static DelegateCommand<Guid?> _deleteBelegkopfCommand;
public DelegateCommand<Guid?> DeleteBelegkopfCommand
{
get
{
if (_deleteBelegkopfCommand == null)
_deleteBelegkopfCommand = new DelegateCommand<Guid?>(OnDeleteBelegkopf, CanDeleteBelegkopf);
return _deleteBelegkopfCommand;
}
}
有没有人知道为什么我的命令根本没有响应?我用其他在我的代码中的其他地方工作的命令测试它 - 它也没有工作。所以我认为这与我对命令的绑定有关。
答案 0 :(得分:1)
ContextMenus是具有自己的VisualTree的单独控件:
如果查看输出窗口,我猜您会看到绑定异常。如果是这样,那么看看: