【发布时间】:2011-12-04 10:38:03
【问题描述】:
我有一个带有自定义 ItemsTemplateSelector 的 ComboBox。控件的 Items 在 xaml 中定义,如下所示:
<ComboBox ItemTemplateSelector="{StaticResource CommonListSelectorTemplates}" >
<local:MyItem Heading="First" Text="First Item"/>
<local:MyItem Heading="Second" Text="Second Item"/>
<local:MyItemWithValue Heading="Third" Text="Third Item" Value="{Binding TheValue}" />
</ComboBox>
第三个项目有一个 Value 属性,我希望将其绑定到 ComboBox 的 DataContext 上的 TheValue 属性。此绑定失败并出现以下错误:
“找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。BindingExpression:Path=TheValue;DataItem=null;目标元素是 'MyItemWithValue' (HashCode=49465727);目标属性是 'Value' (类型 'Int32')"
我猜这是因为 Items 集合不使用 ComboBox 的 DataContext。我尝试了 RelativeSource 的不同排列但没有成功,所以我的问题是:完成绑定的最佳方法是什么?
编辑:
RV1987 如前所述回答了我的问题。但是,我想要的是双向绑定,并且所提出的解决方案似乎都不适用于此。问题可能是我无法让代理中的绑定成为双向的;编译器拒绝接受
DataContext="{Binding, Mode=TwoWay}"
【问题讨论】:
标签: wpf binding itemscontrol