使用绑定访问资源¶
您可以使用 Acquire 绑定函数,通过其资源 ID 加载资源,这些 ID 是您在字符串属性中定义的。
资源 ID 必须位于您使用 acquire 函数的节点的资源字典中,或其某个祖先节点的资源字典中:
如果资源尚未加载到应用程序内存中,
acquire函数将加载该资源。如果资源 ID 未定义,
acquire函数将返回一个空值。
例如,您可以创建一个绑定,从数据源获取文本资源的资源 ID,加载文本资源,并设置一个 Text Block 节点以显示该文本资源的内容。如果您对该文本资源进行本地化,Text Block 会自动显示应用程序当前区域设置的资源值。如果您更改数据源中的数据,绑定函数将获取资源 ID 指向的资源,并更新文本。
要根据其资源 ID 加载文本资源:
在 Kanzi Studio 中创建您想在应用程序中显示的资源。
例如:在本地化表中,为列表菜单中的标签创建文本资源。请参阅 本地化应用程序。
创建一个数据源,其中字符串数据对象设置您要在应用程序中显示的资源的资源 ID。请参阅 定义数据源 和 使用数据源。
例如:
在 Kanzi Studio 的 Quick Start 窗口中,点击 Projects 并选择 Tutorials 选项卡。在 Data sources 教程旁边,点击
。
在 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 列表项中的数据源中定义的。
小技巧
您可以右键单击某个属性并选择 Create Binding,开始为该属性创建绑定。
这样,您会自动将该属性添加到 Binding Editor 中。
创建显示内容的节点,该内容是数据源中的资源 ID 所指向的内容。
例如,将数据源的数据填充到 List Box 节点中,并将包含您添加了加载资源绑定的节点的预设用作项目模板。请参阅 使用列表数据对象。
当您切换应用程序的区域设置或更改数据源中的数据时,acquire 绑定函数获取资源 ID 指向的资源,并更新 List Box 节点中的内容。