Xamarin 中的全局可绑定 属性

Global bindable property in Xamarin

我想创建一堆可绑定属性,以供整个应用程序的视图使用。标签中的默认字体 size/color 之类的。当 属性 发生变化时,我希望所有视图都能反映这一变化。这可能吗?我如何在 xaml 中引用这样的 属性?

所以我认为你可以通过这两种方式进行。

1) 使用动态资源。在您的 xaml 文件中,您可以像指定 StaticResource 一样指定资源,但改用 DynamicResource。然后在后面的代码中你可以修改资源字典并且视图应该更新。您可以在 Petzold 书的第 10 章中找到这方面的示例:(https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/)

2) 使用值转换器。您可以将 xaml 控件中的 属性 绑定到视图模型中的 属性 并指定一个值转换器以将某些通用值或枚举转换为 UI 视图值(例如可见性或颜色等)您可以在第 16 章的 Petzold 书中找到值转换器的示例。

就我个人而言,我认为您应该使用上面的选项 1,除非属性以某种方式与工作流相关而不是视图自定义。如果您要向用户显示控件以更改字体大小或颜色等内容,那么选项 2 可能更好。