我试图将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