public virtual async Task <T> UpdateProperty <T>( string propertyName, T publicValue, T privateValue, object eventCallback = null, Expression <Func <T> > expression = null) { CellDataBoundComponent dataBoundComponent = this; T finalResult = publicValue; if (!EqualityComparer <T> .Default.Equals(publicValue, privateValue)) { T newValue = dataBoundComponent.DirectParameters.ContainsKey(propertyName) ? (T)dataBoundComponent.DirectParameters[propertyName] : publicValue; bool flag = eventCallback != null && ((EventCallback <T>)eventCallback).HasDelegate; bool isPropertyBinding = !CellBaseUtils.Equals(publicValue, newValue) && dataBoundComponent.IsRerendering; CellBaseComponent sfBaseComponent = dataBoundComponent.MainParent != null ? dataBoundComponent.MainParent : dataBoundComponent; finalResult = dataBoundComponent.IsRerendering & flag | isPropertyBinding || !sfBaseComponent.IsRendered ? publicValue : privateValue; if (flag) { await((EventCallback <T>)eventCallback).InvokeAsync(finalResult); } if (isPropertyBinding) { dataBoundComponent.DirectParameters[propertyName] = finalResult; CellBaseUtils.UpdateDictionary(propertyName, finalResult, dataBoundComponent.PropertyChanges); } } T obj = finalResult; finalResult = default; return(obj); }
protected override async Task OnAfterRenderAsync(bool firstRender) { CellBaseComponent cellBaseComponent = this; if (firstRender) { cellBaseComponent.DotnetObjectReference = DotNetObjectReference.Create <object>((object)cellBaseComponent); cellBaseComponent.IsRendered = firstRender; await CellBaseUtils.ImportModule(cellBaseComponent.JSRuntime, CellScriptModules.CellBase); await CellBaseUtils.InvokeDeviceMode(cellBaseComponent.SyncfusionService, cellBaseComponent.JSRuntime); await CellBaseUtils.ImportModules(cellBaseComponent.JSRuntime, cellBaseComponent.DependentScripts, cellBaseComponent.SyncfusionService.ScriptHashKey); if (cellBaseComponent.ScriptModules != CellScriptModules.None) { await CellBaseUtils.ImportModule(cellBaseComponent.JSRuntime, cellBaseComponent.ScriptModules, cellBaseComponent.SyncfusionService.ScriptHashKey); } await cellBaseComponent.OnAfterScriptRendered(); } cellBaseComponent.PropertyChanges?.Clear(); }