我目前有一个自定义对象的ObservableCollection
,这是在我的ViewModel。在我看来,这个集合绑定到ListBox
中的ItemsSource
属性,其中集合中的每个项目都显示为RadioButton
。
有了这些单选按钮,我试图让他们在按钮被选中时执行中继命令(假设我应该将RadioButton
的Command
属性绑定到中继命令),我不认为这是实现这一错误的正确方法:
- System.Windows。数据错误:40:
- BindingExpression路径错误:'SelectCommand'属性在'object' ''CustomObject' (HashCode=37826814)'.
- BindingExpression:路径= SelectCommand;
- DataItem = ' CustomObject ' (HashCode = 37826814);
- 目标元素是'RadioButton' (Name= " ");
- 目标属性是'Command'(类型' iccommand ')
这是因为它试图在CustomObject
内查找命令,而不是ViewModel
吗?如何解决这个问题?
这是因为它试图在CustomObject而不是ViewModel中查找命令吗?
这是正确的,您需要绑定到具有DataContext
设置为ViewModel的元素的DataContext
。
一个好主意是绑定到父ListBox
。
{Binding DataContext.SelectCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBox}}