/// <summary> /// Create menu item container /// </summary> protected virtual View CreateItemContainer(object model) { View item = null; if (ItemContainerTemplateSelector != null) { DataTemplate containerTemplate = ItemContainerTemplateSelector.SelectTemplate(model, null) as DataTemplate; item = containerTemplate.CreateContent() as View; } else if (ItemContainerTemplate != null) { item = ItemContainerTemplate.CreateContent() as View; } else { item = new ContentView(); } if (item == null) { throw new Exception("ItemContainerTemplate is not subclass of ContentView"); } item.BindingContext = model; return(item); }
private View GetSimpleView(View convertView, object source, ViewGroup parent) { if (ItemTemplate != null || ItemTemplateSelector != null) { if (convertView == null) { if (ItemContainerTemplate != null) { var container = ItemContainerTemplate() as SelectorItem; if (container != null) { container.Style = ItemContainerStyle; container.ContentTemplateSelector = ItemTemplateSelector; container.ContentTemplate = ItemTemplate; container.Binding("Content", ""); } else { throw new InvalidOperationException("The ItemContainerTemplate must be a SelectorItem"); } _allocatedViews.Add(container); return(container); } else { var template = DataTemplateHelper.ResolveTemplate( this.ItemTemplate, this.ItemTemplateSelector, source, null ); var templateView = template?.LoadContentCached(); _allocatedViews.Add(templateView); return(templateView); } } else { return(convertView); } } else { var container = ItemContainerTemplate?.Invoke() ?? new SelectorItem() { ShouldHandlePressed = false }; container.Style = ItemContainerStyle; container.ContentTemplate = GetDataTemplateFromItem(source); container.Binding("Content", ""); return(container); } }
public void MailUpdate() { mails = API.getMailsByUserId(thisUser.UserID); ItemContainerTemplate mailTemplate = new ItemContainerTemplate(); IList <StackPanel> mailPanels = new List <StackPanel>(); IList <Button> mailButtons = new List <Button>(); ScrollViewer thisScrollInc = new ScrollViewer(), thisScrollOut = new ScrollViewer(); Grid thisAllMailGridNew = new Grid(), thisAllMailGridOutNew = new Grid(); int rowNumber = 0; int rowNumberInp = 0; int rowNumberOut = 0; foreach (Mail mail in mails) { Button mailButton = new Button() { Name = "mailButton" + rowNumber }; Grid thisAllMailGrid, thisMailGrid; if (Convert.ToInt32(thisUser.UserID) == mail.AddresserID) { rowNumber = rowNumberInp; thisMailGrid = mailGrid; thisAllMailGrid = thisAllMailGridNew; } else { rowNumber = rowNumberOut; thisMailGrid = mailGridOut; thisAllMailGrid = thisAllMailGridOutNew; } thisAllMailGrid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(60) }); mailButton.Click += delegate { Button_Click(mail, thisMailGrid); }; mailButton.Content = "Title: " + mail.Title + '\n' + "Addressee: " + API.getUserByUserId(mail.AddresseeID).UserName + '\n' + "Addresser: " + API.getUserByUserId(mail.AddresserID).UserName; mailButtons.Add(mailButton); thisAllMailGrid.Children.Add(mailButton); if (Convert.ToInt32(thisUser.UserID) == mail.AddresserID) { Grid.SetRow(mailButton, rowNumberInp++); } else { Grid.SetRow(mailButton, rowNumberOut++); } } thisScrollInc.Content = thisAllMailGridNew; thisScrollOut.Content = thisAllMailGridOutNew; allMailsGrid.Children.Clear(); allMailsGridOut.Children.Clear(); allMailsGrid.Children.Add(thisScrollInc); allMailsGridOut.Children.Add(thisScrollOut); }
public static IViewAssociationBuilder AssociateContainer <TViewModel>(this IViewResolverAssociateAware service, ItemContainerTemplate template) { if (service == null) { throw new ArgumentNullException(nameof(service)); } return(service.Associate(typeof(ContainerResolver), typeof(TViewModel), template)); }