Example #1
0
        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),
     });
Example #3
0
        public ContentViewHandler(NativeComponentRenderer renderer, MC.ContentView contentViewControl) : base(renderer, contentViewControl)
        {
            ContentViewControl = contentViewControl ?? throw new ArgumentNullException(nameof(contentViewControl));

            Initialize(renderer);
        }