У меня есть ComboBox с пользовательским ItemsTemplateSelector. Элементы для элемента управления определены в 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, которое я хочу связать со свойством TheValue в DataContext ComboBox. Эта привязка завершается с ошибкой:
"Не удается найти управляющий FrameworkElement или FrameworkContentElement для целевого элемента. BindingExpression: Path = TheValue; DataItem = null; целевым элементом является 'MyItemWithValue' (HashCode = 49465727); целевым свойством является 'Value' (тип 'Int32')"
Полагаю, это потому, что коллекция Items не использует DataContext ComboBox. Я пробовал разные варианты RelativeSource без успеха, поэтому мой вопрос: каков наилучший способ выполнить связывание?
EDIT:
RV1987 ответил на мой вопрос, как было указано. Однако я хочу, чтобы связывание было двусторонним, и ни одно из предложенных решений, похоже, не сработало для этого. Проблема может заключаться в том, что я не могу сделать привязку в прокси двусторонней; компилятор отказывается принимать
DataContext = "{Binding, Mode = TwoWay}"