我有一个应用程序显示TreeView
。 TreeView
有一个上下文菜单。我使用Caliburn.Micro作为MVVM框架。使用WPF和MVVM处理TreeViews上下文菜单
需要行cal:Message.Attach="[Event Click]=[Action Remove()]"
,以便在单击ContextMenu-Item时发生某些事情。此行使Caliburn.Micro在TreeItem的ViewModel中搜索名为Remove的方法。
但我希望点击ContextMenu
Item将调用屏幕的ViewModel的方法Remove。怎么做?
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem cal:Message.Attach="[Event Click]=[Action Remove()]" Name="Remove" Header="Remove item" />
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
或者处理TreeItem本身的ViewModel中的删除逻辑(包括删除)更好DTO从数据库?) –
有人有类似的问题[链接(http://stackoverflow.com/questions/24825722/bubbling-events-from-bound-viewmodel-goes-to-parent)。根据作者自己:[链接[(http://stackoverflow.com/questions/3650800/bind-a-command-to-a-button-inside-a-listview-with-caliburn-micro)。所以只需按照惯例调用它或像这样 i:EventTrigger> ' –
我发布了答案,如果这解决了您的问题 –