我正在使用Prism构建菜单(使用带有层次结构数据模板的trtelerik树视图,但希望细节无关紧要)并且我正在尝试在每个菜单项绑定上设置Click.Command调用视图模型中定义的同一委托命令。菜单是由项目构建的,我真的不想对命令进行任何引用。
如何将命令绑定到xaml中的每个项目?我环顾四周,看起来在WPF中我可以使用相对源绑定并找到祖先,但似乎没有办法在Silverlight中这样做。我可以以某种方式将委托设置为静态资源吗?我不认为我可以为视图模型创建静态资源,因为它使用Unity来解析它的构造函数的参数。
答案 0 :(得分:0)
一种选择是通过ElementName绑定绑定到UserControl的DataContext(或任何其他控件的DataContext)。
<UserControl x:Name="Control" xmlns:Cal="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation"...
Cal:Click.Command="{Binding ElementName=Control, Path=DataContext.SomeVMCommand}"