function getBindingsFromTemplateProperties(oTemplate, oTemplateParent, oModel) {
		const aPropertiesKeys = Object.keys(oTemplate.getMetadata().getAllProperties());

		return aPropertiesKeys
		.filter(function(sPropertyName) {
			const mBindingInfo = oTemplate.mBindingInfos[sPropertyName];
			const sModelName = mBindingInfo && mBindingInfo.parts[0] && mBindingInfo.parts[0].model;
			let bIsSameModel = oModel === oTemplateParent.getModel(sModelName);
			if (!sModelName) {
				const oParentDefaultModel = oTemplateParent.getDefaultModel ? oTemplateParent.getDefaultModel() : null;
				const oTemplateDefaultModel = oTemplate.getDefaultModel ? oTemplate.getDefaultModel() : null;
				bIsSameModel = oParentDefaultModel === oTemplateDefaultModel;
			} else {
				bIsSameModel = oModel === oTemplateParent.getModel(sModelName);
			}
			return mBindingInfo && bIsSameModel;
		})
		.reduce(function(aBindings, sPropertyName) {
			return aBindings.concat(
				flattenBindingsFromTemplate(
					oTemplate.mBindingInfos[sPropertyName]
				)
			);
		}, []);
	}
Retrieving all bindings from all available properties for a template

@param {sap.ui.core.Control} oTemplate - template being evaluated
@param {sap.ui.core.Control} oTemplateParent - template "parent"; control to which it is bound
@param {sap.ui.model.Modell} oModel - relevant model, usually the parent default model

@return {Array} - returns found bindings
@private