【发布时间】:2016-12-18 09:30:08
【问题描述】:
我正在开发一个 UWP 应用程序,该应用程序将被侧面加载并从 WebAPI 获取其大部分配置。 我希望能够在 XAML 和代码中使用翻译后的标签,因为我看到“UWP 方式”是使用资源文件,但我不想将字符串存储在项目本身中,我希望它们从WebAPI,然后使用缓存的键值字典。
在代码中获取字符串显然没有问题,问题在于 XAML - 在 WPF 中,使用自定义 MarkupExtension 非常简单,但是因为我们在 UWP 中没有 MakrupExtensions,有没有一种干净的方法可以做到这一点?
编辑:
到目前为止我尝试了什么:
- 使用具有索引器的对象为所有控件创建基类以获取翻译 - 不起作用,因为 x:Bind 不支持基于字符串的索引器
- 尝试使用自定义动态对象 - 不起作用,因为 x:Bind 不支持动态对象
- 尝试将某个自己的类作为资源并从中访问属性 - 再次无法正常工作
目前看来,唯一的方法似乎是创建一个巨大的类,其中每个翻译/标签都必须拥有自己的属性,或者使用标准 Binding(或从它派生的某个类)。
EDIT_2:
忘了,另一个用例是在带有模板的 xaml 资源中使用它,而不仅仅是控件和页面。
【问题讨论】:
标签: xaml winrt-xaml uwp uwp-xaml