public ComponentAdapterController(RazorComponentRenderer renderer, IComponent component, object rootElement, ComponentAdapterController parent = null) { Renderer = renderer; Component = component; RootElement = rootElement; Parent = parent; //if (parent != null) //{ // parent.Children.Add(this); //} }
public async Task <TRootElement> AddComponent <TRootElement>(Type componentType, Element parentElement, Action <object> parameterSetter) where TRootElement : class { ComponentAdapterController adapter = null; //await Dispatcher.InvokeAsync(async () => //{ var component = InstantiateComponent(componentType); var componentId = AssignRootComponentId(component); parameterSetter?.Invoke(component); adapter = new ComponentAdapterController(this, component, parentElement); Adapters[componentId] = adapter; await RenderRootComponentAsync(componentId).ConfigureAwait(false); RootComponent = component; //}).ConfigureAwait(false); if (adapter.RootElement is BridgeComponentBase @base) { return(@base.Native as TRootElement); } return(adapter.RootElement as TRootElement); }