Глобальная привязываемая собственность в Xamarin

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

1 ответ

Решение

Поэтому я думаю, что вы можете пойти по этому поводу двумя путями.

1) Используйте динамические ресурсы. В вашем файле xaml вы указываете ресурс так же, как и в Static Resource, но вместо этого используете Dynamic Resource. Затем в коде позади вы можете изменить словарь ресурсов, и представление должно обновиться. Вы можете найти примеры этого в главе 10 книги Петцольда: ( https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/)

2) Используйте конвертеры значений. Вы можете привязать свойство в элементе управления xaml к свойству в вашей модели представления и указать конвертер значений для преобразования какого-либо общего значения или перечисления в значение представления пользовательского интерфейса (например, Visibilty, или цвета и т. Д.). Вы можете найти примеры значений Конвертеры в книге Петцольда в главе 16.

Лично я думаю, что вы должны использовать вариант 1 выше, если только свойства не связаны с рабочим процессом и не относятся к настройке просмотра. Если вы предоставляете пользователю элементы управления для изменения таких параметров, как размер шрифта или цвета, возможно, вариант 2 лучше.

Другие вопросы по тегам