Соглашение об элементах Caliburn
-
26-09-2019 - |
Вопрос
Пытаясь изучить исходный код примера приложения GameLibrary, я увидел такую строку:
ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged");
Посмотрел исходный код Caliburn, но не смог понять, что такое соглашения об элементах.
Может кто-нибудь вкратце описать, пожалуйста?
Решение
ConventionManager.AddElementConvention
позволяет вам установить набор настроек «по умолчанию», используемых системой соглашений для каждого элемента типа.
В упомянутом выше случае первое значение параметра
Rating.ValueProperty
сообщает системе соглашений, какое свойство по умолчанию является привязываемым для элемента.Итак, если у нас есть совпадение по соглашению наRating
контроль, мы настраиваем привязку кValueProperty
.Второй параметр представляет свойство по умолчанию, которое будет использоваться в привязках действий.Итак, если вы создаете привязку действия с помощью
ElementName
это указывает наRating
контролировать, но не указывать свойство, мы возвращаемся кValue
свойство.Наконец, параметр thrid представляет событие по умолчанию для элемента управления.Таким образом, если мы прикрепим действие к элементу управления рейтингом, но не укажем событие, вызывающее это действие, система вернется к
ValueChanged
событие.
Эти соглашения об элементах позволяют разработчику предоставлять как можно больше или мало информации в различных ситуациях, позволяя платформе заполнять недостающие детали по мере необходимости.