【发布时间】:2011-08-05 18:13:15
【问题描述】:
我正在使用带有 Caliburn 和 MVVM 模式的 WPF,并且我正在尝试设置一个动态上下文菜单。
目前我们有一个上下文菜单,它的项目绑定到 ViewModel 上的 BindableCollection。
<UserControl.ContextMenu>
<ContextMenu ItemsSource="{Binding AvailableActions}"
actions:Action.TargetWithoutContext="{Binding}"
ItemContainerStyleSelector="{StaticResource NamedActionStyleSelector}"/>
</UserControl.ContextMenu>
public BindableCollection<NamedAction> AvailableActions { get; set; }
这个 BindableCollection 在程序运行过程中的某些情况下通过方法(再次在视图模型上)更新:
private void UpdateAvailableActions()
当前系统在大多数情况下都能正常工作,但有一些边缘情况表明我们最好在右键单击事件后动态生成列表。
所以我的问题是,当用户右键单击时,任何人都可以帮助我以最佳方式调用更新方法(或编写将调用的替代方法)。任何有关如何执行此操作的帮助将不胜感激。
谢谢
【问题讨论】:
标签: c# wpf mvvm contextmenu caliburn