Что такое DataContext объекта DependencyObject в Silverlight4? - PullRequest
1 голос
/ 05 июля 2010

Я читал, что SL4 предоставляет возможность привязывать данные к объектам, которые являются производными от DependencyObjects, где ранее привязка данных работала только на FrameworkElements или FrameworkContentElements.

Однако мне не ясно, как связываниеисточник определяется, когда привязываются свойства DependencyObjects.

В случае FrameworkElements свойство DataContext элемента является исходным объектом («переход по дереву» для поиска DataContext, если DataContext не установлен непосредственно).

В случае DependencyObjects я бы предположил, что используемый DataContext является DataContext для «содержащего» FrameworkElement в файле XAML.Но каков механизм определения этого содержащего объекта?

В моем конкретном случае я пытаюсь связать свойство DependencyObject, которое живет в ObservableCollection, которое является свойством FrameworkElement.К сожалению, попытка связать свойство с DependencyObject не удалась, поскольку система привязки данных, похоже, использует сам DependencyObject в качестве своего собственного DataContext.Он жалуется (в окне вывода), что тип не имеет свойства с именем, указанным в выражении привязки.Привязка свойства зависимости FrameworkElement в том же UserControl с тем же выражением привязки прошла успешно.

1 Ответ

1 голос
/ 06 июля 2010

Вы пытались указать свойство Source или ElementName при определении привязки?

(например: {Binding Source={StaticResource theFrameworkElement} Path=theObservableCollection[0]}

или {Binding ElementName=theFrameworkElement Path=theObservableCollection[0]}

...