使用绑定访问资源¶
您可以使用 Acquire 绑定函数,通过其资源 ID 加载资源,这些 ID 是您在字符串属性中定义的。
资源 ID 必须位于您使用 acquire 函数的节点的资源字典中,或其某个祖先节点的资源字典中:
如果资源尚未加载到应用程序内存中,
acquire函数将加载该资源。如果资源 ID 未定义,
acquire函数将返回一个空值。
例如,您可以创建一个绑定,从数据源获取文本资源的资源 ID,加载文本资源,并设置一个 Text Block 节点以显示该文本资源的内容。如果您对该文本资源进行本地化,Text Block 会自动显示应用程序当前区域设置的资源值。如果您更改数据源中的数据,绑定函数将获取资源 ID 指向的资源,并更新文本。
要根据其资源 ID 加载文本资源:
在 Kanzi Studio 中创建您想在应用程序中显示的资源。
例如:在本地化表中,为列表菜单中的标签创建文本资源。请参阅 本地化应用程序。
创建一个数据源,其中字符串数据对象设置您要在应用程序中显示的资源的资源 ID。请参阅 定义数据源 和 使用数据源。
例如:
在 Kanzi Studio Quick Start 窗口中,点击 Examples。在 Data source 教程旁边,点击
。
在 Library 中右键单击 Kanzi Engine Plugins,选择 Import Kanzi Engine Plugin,然后导入
<KanziWorkspace>/Tutorials/Data sources/Completed/Application/lib/Win64/GL_vs2019_Release_DLL/XML_data_source.dllKanzi Engine 插件。在 Data Sources 中创建数据源。
您使用该数据源为 List Box 节点中的项提供数据。请参阅 教程:从数据源获取应用程序数据。
<menu type="list"> <items> <item> <name type="string">Sounds</name> </item> <item> <name type="string">DateTime</name> </item> <item> <name type="string">Car</name> </item> <item> <name type="string">Display</name> </item> <item> <name type="string">Language</name> </item> </items> </menu>
加载资源:
使用
acquire绑定函数根据资源 ID 加载资源。例如,选择 Text Block 节点,在该节点中您希望显示资源 ID 指向的内容,在 Properties 中单击 + Add Binding,并在 Binding Editor 中设置:
Property 到 Text
Expression 到
acquire({DataContext.item.name})
您将 Text 属性绑定到文本资源的内容,该文本资源的资源 ID 是您在 name 字符串数据对象的 menu 列表项中的数据源中定义的。
创建显示内容的节点,该内容是数据源中的资源 ID 所指向的内容。
例如,将数据源的数据填充到 List Box 节点中,并将包含您添加了加载资源绑定的节点的预设用作项目模板。请参阅 使用列表数据对象。
当您切换应用程序的区域设置或更改数据源中的数据时,acquire 绑定函数获取资源 ID 指向的资源,并更新 List Box 节点中的内容。