Почему переменные не разрешены для привязки

Я искал в Google этот момент, почему локальные или глобальные переменные не разрешены в качестве источников для привязки данных WPF; может быть привязано только свойство упаковки.

Итак, вопрос в том, где свойства являются оболочкой для переменных, тогда почему эти свойства разрешены, а переменные не разрешены.

Мне нужно знать скрытую систему.


person JSJ    schedule 25.05.2012    source источник
comment
Из интереса: зачем вам это знать?   -  person Dan Puzey    schedule 25.05.2012


Ответы (2)


Механизмы, используемые для привязки (PropertyDescriptor, DependencyProperties и т. д.) используйте только свойства, поэтому вы не можете привязать к полям . Свойства могут обеспечивать проверку, уведомление об изменении и многое другое, что является еще одной причиной предпочтения свойств. Поля ничего из этого не содержат.

Кроме того, использование общедоступных полей обычно является плохой практикой, так почему они должны беспокоиться о реализации привязки к полям? Это только продвинет эти плохие практики.

person Botz3000    schedule 25.05.2012

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

Когда вы собираетесь выполнить привязку к коду, выполняется привязка к свойству, чтобы можно было также вставлять OnPorpertyChanged уведомление.

person Tigran    schedule 25.05.2012