Próbuję powiązać polecenie MenuItem z poleceniem zawartym w UserControl.DataContext
. Znalazłem kilka podobnych pytanie, ale rozwiązanie według nich nie udaje się mnie:Bind to parent DataContext w DataTemplate
<UserControl ...>
<UserControl.Resources>
<DataTemplate x:Key="TileItemStye">
<Grid Width="100" Height="100">
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove"
Command="{Binding DataContext.RemoveItem,
RelativeSource={RelativeSource FindAncestor,
AncestorType=UserControl}}">
</MenuItem>
</ContextMenu>
</Grid.ContextMenu>
</Grid>
</DataTemplate>
</UserControl.Resources>
<Grid>
<ListView ItemsSource="{Binding Path=Files}"
ItemTemplate="{DynamicResource TileItemStye}" >
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</Grid>
UserControl za DataContext jest ViewModel z ICommand
removeItem i ObservableCollection<FileViewModel>
Files.
co oznacza "nieprzestrzeganie" Ciebie? - Proszę wyjaśnij błąd, który otrzymujesz ... – Carsten
Polecenie nie jest związane ... Nie dostaję żadnego błędu, tylko handler, który jest zobowiązany do polecenia, nigdy nie jest nazywany – bkovacic
Myślę, że Datacontext powinien po prostu "padać" na twoje szablon, czy wypróbowałeś Command = "{Binding Path = RemoveItem}"? – hyp