Украшение не-DependencyObject с DependencyProperty - PullRequest
0 голосов
/ 05 мая 2010

Я пытаюсь привязать свойство DataSource элемента управления WinForms в моем приложении WPF, но мне не очень повезло ...

Falafel.com дает ему шанс, но, хотя он заявляет, что объект DependencyObject не требуется для выполнения привязки, это единственный способ сделать это.

Кто-нибудь делал это раньше?

1 Ответ

1 голос
/ 05 мая 2010

A.Для объектов, не производных от DependencyObject, у вас нет доступа к SetBinding() или ClearBinding() методам.Вместо этого вы можете вызывать статические методы BindingOperations.SetBinding() и BindingOperations.ClearBinding().

. Это фактически связывает источник и цель, и это можно сделать из любого объекта, используя статические методы.

B.Теперь об источнике и цели, участвующих в привязке, есть ограничения, которые вы можете прочитать здесь и суммировать до:

" Целью привязки может быть любое доступное свойствоили элемент, производный от DependencyProperty - например, свойство Text элемента управления TextBox. Источником привязки может быть любое открытое свойство, включая свойства других элементов управления, объекты среды CLR, элементы XAML, ADO.NET DataSets,Фрагменты XML и т. Д. . "

В свою очередь DependencyProperty может существовать (если я не ошибаюсь) только в DependencyObject.Таким образом, цель должна находиться в DependencyObject, но не в источнике, а не в объекте, из которого создается привязка.

И это не совсем верно, вы также можете использовать цель, которая не являетсяDO, посмотрите на код в этой странице .

  • Также помните, что вы можете выполнить обратную привязку, используя тип привязки OneWayToSource.В этом случае цель не должна быть DependencyObject.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...