public async Task ControlTemplateUpdates() { SetupBuilder(); var child = new Label { Text = "Content 1" }; var contentView = new Microsoft.Maui.Controls.ContentView(); var header = new Label { Text = "Header" }; var footer = new Label { Text = "Footer" }; var presenter = new ContentPresenter(); var grid = new Grid(); var contentViewHandler = await CreateHandlerAsync <ContentViewHandler>(contentView); await InvokeOnMainThreadAsync(() => { contentView.Content = child; Assert.True(GetChildCount(contentViewHandler) == 1); Assert.True(GetContentChildCount(contentViewHandler) == 0); grid.Children.Add(header); grid.Children.Add(presenter); grid.Children.Add(footer); var dataTemplate = new ControlTemplate(() => grid); contentView.ControlTemplate = dataTemplate; Assert.True(GetChildCount(contentViewHandler) == 1); Assert.True(GetContentChildCount(contentViewHandler) == 3); }); }
private static ElementHandler CreateHandler(MC.Element parent, MobileBlazorBindingsRenderer renderer) { return(parent switch { MC.ContentPage contentPage => new ContentPageHandler(renderer, contentPage), MC.ContentView contentView => new ContentViewHandler(renderer, contentView), MC.Label label => new LabelHandler(renderer, label), MC.FlyoutPage flyoutPage => new FlyoutPageHandler(renderer, flyoutPage), MC.ScrollView scrollView => new ScrollViewHandler(renderer, scrollView), MC.ShellContent shellContent => new ShellContentHandler(renderer, shellContent), MC.Shell shell => new ShellHandler(renderer, shell), MC.ShellItem shellItem => new ShellItemHandler(renderer, shellItem), MC.ShellSection shellSection => new ShellSectionHandler(renderer, shellSection), MC.TabbedPage tabbedPage => new TabbedPageHandler(renderer, tabbedPage), _ => new ElementHandler(renderer, parent), });
public ContentViewHandler(NativeComponentRenderer renderer, MC.ContentView contentViewControl) : base(renderer, contentViewControl) { ContentViewControl = contentViewControl ?? throw new ArgumentNullException(nameof(contentViewControl)); Initialize(renderer); }