Data binding 在对话框sapui5中动态更改绑定

Data binding 在对话框sapui5中动态更改绑定,data-binding,sapui5,Data Binding,Sapui5,我有一个片段,其中我将项目绑定到Voitures实体,但我想将绑定项目更改为模型中的另一个实体: <core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m"> <SelectDialog title="{i18n>titreVoiture}" search="ChercherVoiture" confirm="fermerdialog" cancel="fermerdialog" items=

我有一个片段,其中我将项目绑定到
Voitures
实体,但我想将绑定项目更改为模型中的另一个实体:

<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m">
 <SelectDialog  title="{i18n>titreVoiture}" search="ChercherVoiture" confirm="fermerdialog"
    cancel="fermerdialog" items="{VoitureModel>/GrosVoitures}">
    <StandardListItem title="{VoitureModel>NomVoiture}" type="Active"/>
  </SelectDialog>
 </core:FragmentDefinition>

你能帮忙吗?

希望这对你有帮助,这不是完美的解决方案,但很有效。如果有更好的解决方案,请与我们分享

您可以使用单个模型绑定项目,比如说
oModel
。正如您所说,您有
voitremodel
模型,其中有两个属性
GrosVoitures
petitsVoitures
,它们具有对象数组。因此,您可以将
GrosVoitures
中的所有项目推送到
oModel
中,当您想要更改它时,只需通过将
petitsVoitures
的所有项目推到
oModel
来更新
oModel
来更新同一模型

更新的XML

<SelectDialog  title="{i18n>titreVoiture}" search="ChercherVoiture" confirm="fermerdialog"
    cancel="fermerdialog" items="{oModel>/items}">
    <StandardListItem title="{oModel>NomVoiture}" type="Active"/>
</SelectDialog>
因此,在使用模型的
setData()
设置数据后,需要绑定
oModel

var oData = VoitureModel.getData().GrosVoitures; //Return list of objects
oModel.setData({items : [oData] });
现在,当您想要更新模型时,请执行相同的操作

var oData = VoitureModel.getData().petitsVoitures; //Return list of objects
oModel.setData({items : [oData] });

如果您想在控制器内设置绑定,请使用sap.ui.base.ManagedObject类中的方法。@fabiopagoti不仅仅是在控制器内设置绑定,我编写了一个对话框,它绑定了一个集合,我想对其进行更改,因此如果您能提供更多详细信息,我将非常感谢您提供您的模型格式。不清楚“petitsVoitures”的格式是什么?这两个实体具有相同的属性?请分享这两个实体的财产。正如您所说的要更改绑定路径,这意味着两个实体在其中具有相同的属性。是吗?@i是的,它们是一样的,但我发现很难找到装物品的容器来改变它的装帧,当我怀疑你如此感谢你花时间回答我时,这意味着很多:D愿上帝保佑你,很高兴它能帮助你:)
var oData = VoitureModel.getData().GrosVoitures; //Return list of objects
oModel.setData({items : [oData] });
var oData = VoitureModel.getData().petitsVoitures; //Return list of objects
oModel.setData({items : [oData] });