如何更改 sap.m.Select 绑定?

How to change sap.m.Select binding?

<Input value="{binding}"/> 工作正常。

但是如果我使用

<Select> <core:Item key="{key}" text="{binding}" /> <core:Item key="1" text="O530" /> <core:Item key="2" text="O531" /> </Select>

显示为

<Select> <core:Item key="1" text="O530" /> <core:Item key="1" text="O530" /> <core:Item key="2" text="O531" /> </Select>

但我想要的是

<Select> <core:Item key="1" text="O530" /> (selected) <core:Item key="2" text="O531" /> </Select>

我该怎么办?

我尝试使用setSelectedItem,但我在控制器中使用了form.bindElement("/ProductSet('1')"),我不知道如何将{binding}取出来。

不知道你为什么用:

<Select>
    <core:Item key="{key}" text="{binding}" /> <- This line of code?
    <core:Item key="1" text="O530" />
    <core:Item key="2" text="O531" />
</Select>

无论如何,这就是我要做的: 首先我的模型有 selected 键:

var model = new sap.ui.model.json.JSONModel({
                  data: [
                         {
                             key:'2',
                             text:'text'
                         }] 
               });

接下来,查看我的 sap.m.select :(我知道我的 select 只有 2 个项目,所以很难编码,否则我将为 sap.m.select 使用聚合绑定):

<Select selectedKey="{key}" id='idSelect'>
            <core:Item key="1" text="O530" /> 
            <core:Item key="2" text="O531" />
        </Select> 

在这里,selectedkey 将设置存储在我的模型中的密钥。

接下来,从我的 JSON 控制器模型中的元素绑定:

this.getView().byId('idSelect').setModel(model).bindElement({
                      path: '/data/' + 0
                   });

并且绑定工作正常。您可以更改 JSON 模型中的密钥,相应的密钥是 select 在 sap.m.Select 中编辑的。