Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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));
 }