Sapui5 什么';setBindingContext()的用法与元素绑定的区别是什么?

Sapui5 什么';setBindingContext()的用法与元素绑定的区别是什么?,sapui5,Sapui5,在OpenUI5 demokit的1.5.2.3定义绑定路径部分中: 在聚合绑定的情况下,每个聚合条目都存在上下文,或者可以使用setBindingContext方法为控件显式设置上下文 在OpenUI5 demokit的1.5.3.3元素绑定部分: 元素绑定允许将元素绑定到模型数据中的特定对象,这将创建绑定上下文,并允许在控件及其所有子控件中进行相对绑定 在我看来,这两种技术实际上做了相同的事情。它们都为控件创建绑定上下文,以便包含控件的绑定将相对于它进行解析。但是他们之间有什么区别呢?它们中

在OpenUI5 demokit的1.5.2.3定义绑定路径部分中:

在聚合绑定的情况下,每个聚合条目都存在上下文,或者可以使用setBindingContext方法为控件显式设置上下文

在OpenUI5 demokit的1.5.3.3元素绑定部分:

元素绑定允许将元素绑定到模型数据中的特定对象,这将创建绑定上下文,并允许在控件及其所有子控件中进行相对绑定

在我看来,这两种技术实际上做了相同的事情。它们都为控件创建绑定上下文,以便包含控件的绑定将相对于它进行解析。但是他们之间有什么区别呢?它们中的任何一个在什么情况下发挥作用?

设置绑定上下文在以下代码中不起作用:


但是,如果我更改oPanel.setBindingContext(“/nameinfo”)
oPanel.bindElement(“/nameinfo”),它可以工作,为什么?

setBindingContext
要求您传递这样的上下文:

oPanel.setBindingContext(new sap.ui.model.Context(oModel, "/nameinfo"));
这两者之间的区别是概念上的。 绑定上下文用作该控件或其子控件中所有绑定(该模型)的父上下文。它只保存对所用模型的引用(路径的一部分)和可选的另一个父上下文。它在创建相对绑定时使用

另一方面,
bindElement
方法的行为与其他所有bind*方法类似。 它创建一个允许更改事件、数据绑定等的绑定(在本例中为
ContextBinding
)。 此外,创建的
ContextBinding
还可以作为其他绑定的绑定上下文,就像使用setBindingContext添加的上下文一样

一点也不混乱,对吧

阅读的代码可能会帮助您更好地理解内部结构。(bindObject=bindElement)