我有一个 ViewCharacter 页面,它有一个视图模型 (CharacterViewModel) 作为其 DataContext,在该 CharacterViewModel 中,我有一个 ListBox 用作 ItemSource 的 WeaponViewModel 的 ObservableCollection。ListBox 的 DataTemplate 包含一个为父页面的 View Model 的 ObservableCollection 中的 WeaponViewModels 设计的 UserControl。我需要将 UserControl 中按钮的 CommandParameter 绑定到父页面的视图模型 (CharacterViewModel) 上的属性。我尝试过使用{Binding DataContext.TargetProperty, RelativeSource={RelativeSource TemplatedParent}}
但没有成功,并且在不彻底破坏所有 MVVM 模式的情况下不知道该怎么做。
问问题
565 次
1 回答
0
Windows Phone 7 缺少相对源绑定。我在这里创建了一个 Silverlight 实现:
http://www.scottlogic.co.uk/blog/colin/2009/02/relativesource-binding-in-silverlight/
但是对于性能至关重要的 WP7,我会避免使用它!
相反,我建议在CharacterViewModel
和之间建立WeaponViewModel
双向关系。换句话说,添加一个Parent
属性,WeaponViewModel
该属性将作为对拥有的引用CharacterViewModel
。CharacterViewModel
然后,您可以通过此属性绑定到属性。
于 2012-09-05T05:12:04.483 回答