【发布时间】:2015-12-07 11:23:10
【问题描述】:
我有以下代码,其中 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;
}
}
有人知道为什么我的命令根本没有响应吗?我用在我的代码的其他地方工作的其他命令对其进行了测试——它也没有工作。所以我认为这与我与命令的绑定有关。
【问题讨论】: