public void _onRouteMatched([email protected] <sap.ui.core.routing.Route.MatchedInfo> oEvent, object oData) { var oArgs = oEvent.getParameterFor(p => p.arguments); var oView = this.getView(); var employeeId = oArgs["employeeId"]; oView.bindElement(new sap.ui.core.Element.BindElementInfo() { path = $"/Employees({employeeId})", events = new { change = (sap.ui.model.Binding.ChangeDelegate)(this._onBindingChange), dataRequested = ([email protected])((oEvt, unused) => { oView.setBusy(true); }), dataReceived = ([email protected])((oEvt, unused) => { oView.setBusy(false); }), } }); var oQuery = oArgs["?query"]; if (!Glue.IsNullOrUndefined(oQuery) && _aValidTabKeys.Contains(oQuery["tab"])) { oView.getModelFor <ViewModel>("view").setPropertyFor(m => m.selectedTabKey, oQuery["tab"]); // support lazy loading for the hobbies and notes tab if (oQuery["tab"].As <string>() == "Hobbies" || oQuery["tab"].As <string>() == "Notes") { // the target is either "resumeTabHobbies" or "resumeTabNotes" this.getRouter().getTargets().display("resumeTab" + oQuery["tab"]); } } else { // the default query param should be visible at all time this.getRouter().navTo("employeeResume", new { employeeId = oArgs["employeeId"], query = new { tab = _aValidTabKeys[0] } }, true /*no history*/); } }