У меня есть пользовательский элемент управления - скажем, «ControlBase». У него есть свойство SomeItems, которое является ObservableCollection<InheritedFromDO>
, где InheritedFromDO
является классом, унаследованным от "DependencyObject".
Когда я создаю разметку для дочернего класса ControlBase
, я хотел бы инициировать коллекцию SomeItems. Но почему-то я не могу использовать привязки в этой разметке, хотя элемент управления имеет довольно обычный DataContext и привязка работает в обычных случаях.
Это выглядит так:
<local:ControlBase
...
>
<local:ControlBase.SomeItems>
<SomeItem
DepPropertyOne={Binding Id} <!-- Does NOT work here -->
/>
<SomeItem
DepPropertyOne={Binding Name} <!-- Does NOT work here -->
/>
<local:ControlBase.SomeItems>
<Grid>
<TextBlock
Text={Binding Id} <!-- Works here -->
/>
</Grid>
</local:ControlBase>
Выходные данные говорят:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Id; DataItem=null; target element is 'SomeItem' (HashCode=26965808); target property is 'DepPropertyOne' (type 'Object')
Есть идеи, как заставить это работать?