Привязка Silverlight UserControl к сложному объекту - PullRequest
3 голосов
/ 24 мая 2011

Каков «лучший» (или наиболее часто используемый) подход при привязке сложного класса к пользовательскому элементу управления для повторного использования?

Я пытаюсь создать несколько библиотек многократного использования для классов,и я не уверен, какой подход я должен использовать.Пример: я хочу создать библиотеку адресов, которая определяет и класс Address (со свойствами Line1, Line2 и т. Д.), Его логику проверки и AddressControl, который действует как средство просмотра / редактирования со связанными полями для каждого свойства.

При использовании у меня может быть класс клиента со свойствами BillingAddress, DeliveryAddress, и я бы хотел связать их в своем контроле клиента следующим образом:

<addressLib:AddressControl [xxx]="{Binding BillingAddress}" />

Итак, вопрос в том, что я должен добавитьXXX?

Первоначально я думал о создании DependencyProperty 'Address' для элемента управления:

<addressLib:AddressControl Address="{Binding BillingAddress}" />

Но теперь я уверен, что могу просто использовать существующее свойство DataContext?

<addressLib:AddressControl DataContext="{Binding BillingAddress}" />

Это лучший подход?Есть ли какие-либо проблемы, например, обновления или NotifyPropertyChange?

большое спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Следует помнить одно отличие: со свойством зависимости вы получаете уведомление об изменении, а с помощью datacontext - нет (по крайней мере, пока не выйдет SL5)

1 голос
/ 24 мая 2011

Настройка DataContext вашего элемента управления для вашей модели (в данном случае BillingAddress) - это путь. Если ваш элемент управления используется в DataTemplate для ItemsControl, тогда DataContext будет, конечно, просто "{Binding}".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...