我試圖將MenuItem的命令綁定到包含在UserControl.DataContext
中的命令。我發現,根據他們夫婦類似的問題,但解決方案未能對我說:在DataTemplate中綁定到父DataContext
<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>
用戶控件的DataContext的是視圖模型與ICommand
的removeItem和ObservableCollection<FileViewModel>
文件。
什麼是「不能」你? - 請解釋你得到的錯誤.... – Carsten
命令沒有被綁定...我沒有得到任何錯誤,只是綁定到命令的處理程序永遠不會被調用 – bkovacic
我認爲Datacontext應該「下雨」到你的模板,你嘗試命令=「{綁定路徑= RemoveItem}」? – hyp