Ich habe versucht, einige Lösungen in SO gegeben, aber ich kann immer noch nicht den Befehl auslösen.WPF-Kontextmenü Befehl Binding
XAML:
<Image Source="{Binding CurrentImage.Source, Mode=OneWay}" Grid.Row="0" Grid.Column="1" Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType= Window}}">
<Image.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Edit Image" Command="{Binding PlacementTarget.Tag.EditImageCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"></MenuItem>
</ContextMenu>
</Image.ContextMenu>
Ansichtsmodell:
private ICommand _EditImageCommand;
public ICommand EditImageCommand
{
get
{
return _EditImageCommand ?? (_EditImageCommand = new CommandHandler(() => EditImage(), _canExecute));
}
}
public void EditImage()
{
}
Die Bindung über 'Tag' und die Einstellung' DataContext' wird falsch gefüllt (speziell für 'MVVM'). Überprüfen Sie Binding-Fehler im Ausgabefenster. Es sollte ausreichen, um den Pfad nur in der Command-Bindung normal zu setzen. – Sinatr