Измените контроль изображения на следующий код, это будет кнопка с изображением.Посмотрите, что команда привязана к глобальному DataContext, потому что в viewmodel я объявлю команду.Я использую параметр команды и передаю там Id.
<Button Command="{Binding Path=DataContext.DoSomething, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" CommandParameter="{Binding id}">
<StackPanel>
<Image Width="100" Source="{Binding Path=cover}"/>
</StackPanel>
</Button>
Затем вам нужно объявить команду в ViewModel
public ICommand DoSomething {get;set;}
И инициализировать ее в конструкторе
DoSomething = new DoSomethingCommand(this);
Добавьте еще один класс для определения команды fo
internal class DoSomethingCommand: ICommand
{
private VModel vm;
public PlotPlane(VModel mainViewModel)
{
this.vm = mainViewModel;
}
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
var id = (id)parameter;
//do something, use vm to access your viewmodel
}
}