Тесты ПУЭ на Xamarin часть 2
Начало: Тесты ПУЭ на Xamarin
Корневая страница приложения содержит ToolbarItem (кнопка "Настройки"), несколько Label и MyLabel и кнопку "Следующий вопрос". Четыре объекта MyLabel с вариантами ответов размещены внутри объекта ScrollView. Всё это сориентировано вертикально. Также в файле определён словарь ресурсов - это три конвертера используемых в привязках (Binding) и пара стилей определяющих внешний вид некоторых Label и Frame.
Конвертеры собраны в отдельном файле Converters.
Экземпляр конвертера PlusOdin имеет ключ PlusOdin_ и используется в привязке к свойству Text объекта Label отображающего номер вопроса. Для номера вопроса я использую номер элемента в массиве, поэтому потребовался этот конвертер. Возможно это лютый трэш )
Экземпляр конвертера IsGreaterZero имеет ключ IsGreaterZero_ и привязан к свойству BorderColor объекта Frame внутри которого размещён Label с текстом вопроса. Эта привязка определяет цвет рамки вокруг вопроса. Если вопрос из списка чаще показываемых, то рамка - красная, иначе - зелёная.
Экземпляр конвертера StringToBool с ключом StringToBool_ нужен для изменения свойства IsVisible объекта Frame в котором отображается текст четвёртого варианта ответа. К этому свойству, в свою очередь привязано свойство IsVisible вложенного объекта MyLabel. Ответов бывает 3, поэтому Frame и MyLabel четвёртого ответа при трёх ответах отображать не требуется.
Каждый вариант ответа размещён в объекте MyLabel. К свойству Text этого объекта привязан текст варианта ответа. К свойству isAnswer привязано значение типа bool определяющее верный этот вариант или нет. Таких объектов четыре.
Контекст привязок - это класс MyView. Этот класс унаследован от INotifyPropertyChanged. Когда требуется оповестить систему об изменении какого - либо свойства этого класса, вызывается метод OnPropertyChanged с названием изменившегося свойства в качестве параметра. Затем система изменяет привязки.








Android Developers
90 постов2K подписчиков
Правила сообщества
Друзья!
Давайте адекватно относиться к тематике сообщества. Посты, не удовлетворяющие требованиям канала, будут отклоняться. Разработка под Android - это не только описание того, что надо сделать
(освоить Java / покормить кота / установить студию), но и реальные примеры того, что Вы описываете.