使用绑定访问资源

您可以使用 Acquire 绑定函数,通过其资源 ID 加载资源,这些 ID 是您在字符串属性中定义的。

资源 ID 必须位于您使用 acquire 函数的节点的资源字典中,或其某个祖先节点的资源字典中:

  • 如果资源尚未加载到应用程序内存中,acquire 函数将加载该资源。

  • 如果资源 ID 未定义,acquire 函数将返回一个空值。

例如,您可以创建一个绑定,从数据源获取文本资源的资源 ID,加载文本资源,并设置一个 Text Block 节点以显示该文本资源的内容。如果您对该文本资源进行本地化,Text Block 会自动显示应用程序当前区域设置的资源值。如果您更改数据源中的数据,绑定函数将获取资源 ID 指向的资源,并更新文本。

要根据其资源 ID 加载文本资源:

  1. 在 Kanzi Studio 中创建您想在应用程序中显示的资源。

    例如:在本地化表中,为列表菜单中的标签创建文本资源。请参阅 本地化应用程序。

    ../../_images/localization-table-in-library.png ../../_images/localization-table.png
  2. 创建一个数据源,其中字符串数据对象设置您要在应用程序中显示的资源的资源 ID。请参阅 定义数据源 和 使用数据源。

    例如:

    1. 在 Kanzi Studio 的 Quick Start 窗口中,点击 Projects 并选择 Tutorials 选项卡。在 Data sources 教程旁边,点击 下载。

    2. 在 Library 中右键单击 Kanzi Engine Plugins,选择 Import Kanzi Engine Plugin,然后导入 <KanziWorkspace>/Tutorials/Data sources/Completed/Application/lib/Win64/GL_vs2019_Release_DLL/XML_data_source.dll Kanzi Engine 插件。

    3. 在 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>
    
    ../../_images/xml-data-source-in-library.png ../../_images/ivi-data-source.png
  3. 加载资源:

    1. 使用 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 中。

      ../../_images/properties-create-binding.png
      ../../_images/text-block-2d-in-menuitem.png ../../_images/menuitemtext-acquire-binding.png
    2. 创建显示内容的节点,该内容是数据源中的资源 ID 所指向的内容。

      例如,将数据源的数据填充到 List Box 节点中,并将包含您添加了加载资源绑定的节点的预设用作项目模板。请参阅 使用列表数据对象。

      ../../_images/menulist.png ../../_images/menulist-in-preview.png

当您切换应用程序的区域设置或更改数据源中的数据时,acquire 绑定函数获取资源 ID 指向的资源,并更新 List Box 节点中的内容。

另请参阅

资源管理

绑定 (Bindings)

数据源 (Data Sources)

本地化 (Localization)