Я читал, что SL4 предоставляет возможность привязывать данные к объектам, которые являются производными от DependencyObjects, где ранее привязка данных работала только на FrameworkElements или FrameworkContentElements.
Однако мне не ясно, как связываниеисточник определяется, когда привязываются свойства DependencyObjects.
В случае FrameworkElements свойство DataContext элемента является исходным объектом («переход по дереву» для поиска DataContext, если DataContext не установлен непосредственно).
В случае DependencyObjects я бы предположил, что используемый DataContext является DataContext для «содержащего» FrameworkElement в файле XAML.Но каков механизм определения этого содержащего объекта?
В моем конкретном случае я пытаюсь связать свойство DependencyObject, которое живет в ObservableCollection, которое является свойством FrameworkElement.К сожалению, попытка связать свойство с DependencyObject не удалась, поскольку система привязки данных, похоже, использует сам DependencyObject в качестве своего собственного DataContext.Он жалуется (в окне вывода), что тип не имеет свойства с именем, указанным в выражении привязки.Привязка свойства зависимости FrameworkElement в том же UserControl с тем же выражением привязки прошла успешно.