public ContentItemCell(DisplayContext displayContext, IContentItem contentItem, string cellId) : base(UITableViewCellStyle.Default, cellId)
        {
            var contentItemView = displayContext.ViewFactory.CreateContentItemView(contentItem);

            contentItemView.TranslatesAutoresizingMaskIntoConstraints = false;

            ContentView.AddSubview(contentItemView);
            ContentView.AddConstraints(ContentConstraints(contentItemView, ContentView));
        }
        void Update()
        {
            if (ViewModel.ContentItem == null)
            {
                return;
            }


            var displayContext = new DisplayContext();

            displayContext.ViewController  = this;
            displayContext.Messenger       = Messenger.Default;
            displayContext.RootView        = TableView;
            displayContext.RootContentItem = ViewModel.ContentItem;
            displayContext.ViewFactory     = new DefaultViewFactory(displayContext);

            foreach (var zone in ViewModel.ContentItem.Zones)
            {
                var zoneProp = typeof(TableContentItemViewController).GetProperty(zone.Name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                var zoneView = zoneProp?.GetValue(this, null) as UIView;

                if (zoneView != null)
                {
                    foreach (var element in zone.Elements)
                    {
                        var elementView = displayContext.ViewFactory.CreateElementView(element);

                        if (elementView != null)
                        {
                            if (zoneView is UIStackView)
                            {
                                ((UIStackView)zoneView).AddArrangedSubview(elementView);
                            }
                            else
                            {
                                zoneView.AddSubview(elementView);
                            }
                        }
                    }
                }
            }
        }
Example #3
0
 public ItemsSource(DisplayContext displayContext, IList <IContentItem> items)
 {
     _displayContext = displayContext;
     _items          = items;
 }
 public ItemsSource(DisplayContext displayContext, IList <ITaxonomyItem> items)
 {
     _displayContext = displayContext;
     _items          = items;
 }