2010-04-23 71 views
0

我建立使用Prism菜单添加单棱镜命令委托给项目的列表(使用分层数据模板的trtelerik树视图,但希望细节并不重要),我想设置在每个菜单项上绑定一个Click.Command,它们将调用视图模型中定义的相同委托命令。菜单是建立了项目,我真的不希望把该命令的任何引用英寸的Silverlight XAML中

如何将命令绑定到每个XAML这些项目的?我环顾四周,它看起来像在WPF中我可以使用相对源绑定和找到祖先,但似乎没有办法在Silverlight中做到这一点。我可以以某种方式将代理设置为静态资源吗?我不认为我可以为视图模型创建静态资源,因为它使用Unity将参数解析为构造函数。

回答

0

一种选择是经由结合的ElementName绑定到该用户控件的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}" 

Here's a similar post.

+0

欢呼不知道你能做到元素名称绑定:) – bobwah 2010-04-28 16:30:53