Что случилось с “DataContext = это” в пользовательских элементах управления WPF?

Я считал где-нибудь ту установку DataContext = this в конструкторе пользовательского элемента управления плохая практика (не может найти где хотя). Почему эта плохая практика? Какова альтернатива?

13
задан Bevan 18 September 2011 в 01:47
поделиться

1 ответ

В целом, когда кто-то использует ваш контроль, они захотят установить его контекст данных для своего класса моделей представления и связывать свойства на вашем элементе управления по модели.

Если вы начните возиться с контекстом данных внутри элемента управления, и полагайтесь на его настроек «Это», либо вы предотвратите их привязку от работы, либо ваш контроль не будет работать, как ожидается, потому что вы полагаетесь на Это не изменилось.


Скажем, у вас есть контроль пользователя, который имеет кучу на подпункте. Вместо этого вы можете сделать вместо этого, устанавливает DataContext на контрольные элементы управления, чтобы ваш класс управления пользователями (или все, что вы хотели). Это позволит вам связывать те подразделения для своих свойств управления пользователями, в то же время, по-прежнему предоставляя пользователям вашего элемента управления, чтобы установить его контекст данных в модели их представления, а также связываться с свойствами.

18
ответ дан 1 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: