【发布时间】:2023-03-19 07:55:01
【问题描述】:
我正在开发一个包含多个 .resw 资源文件和页面的类库。问题是,如何获取字符串并将其用于 UI 组件属性。
最好以另一种方式展示案例。首先,解决方案结构请参考图片:
从图中,“MobileReplicaBase”是一个类库。请不要选择两个文件。在“UIresources.resw”中,我定义了一个字符串资源:
并尝试在 EdicolaPage 的按钮控件中使用它:
<Button x:Name="mOpenBtn" Grid.Row="4" x:Uid="OpenBtn" Visibility="{x:Bind Path=type, Converter={StaticResource typeStringToVisibilityConverterForOpenButton}}" Tag="{x:Bind Path=productCode}" Click="mOpenBtn_Click"/>
但这不起作用,按钮的 Content 属性只是一个空字符串。我可以猜测的是,该应用程序正在尝试从项目“MobileReplica”的资源映射中加载“OpenBtn”资源,该项目目前是解决方案中的启动项目。
注意:按钮可能位于 GridView 的数据模板中,因此在 C# 代码中获取资源可能不是一个好主意。
我说得够清楚了吗?如果没有,请随时询问。任何帮助将不胜感激,谢谢。
亚历克斯
【问题讨论】:
-
问题很清楚,但我没有看到任何针对您的问题的尝试。您能否更新您的帖子以包含您尝试过的代码,哪些不起作用,以便我们可以更好地为您提供帮助。
-
你试过了吗?
var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView("YourLibrary/Resources"); var resource = resourceLoader.GetString("resourceName");docs.microsoft.com/en-us/windows/uwp/app-resources/… -
@mm8 我知道这适用于 C# 代码。但抱歉,正如我所说,该按钮实际上是用于 GridView 的数据模板的一部分。所以在C#代码中实现它真的不是一个好主意,在xaml文件中更好。谢谢。
-
@Alex.Y:那么使用x:Uid directive 怎么样?你试过了吗?
-
@mm8 是的,这正是我正在尝试的。但不起作用。