Esempio n. 1
0
        protected override void Init()
        {
            var dts      = new MyDataTemplateSelector();
            var listView = new ListView
            {
                ItemsSource  = Enumerable.Range(0, 100),
                ItemTemplate = dts
            };

            var layout = new StackLayout {
                Children = { listView }
            };

            Content = layout;

            listView.ScrollTo(75, ScrollToPosition.MakeVisible, true);
        }
Esempio n. 2
0
        public void DataTemplateExtensionsCreateContent()
        {
            tlog.Debug(tag, $"DataTemplateExtensionsCreateContent START");

            var testingTarget = new MyDataTemplateSelector();

            try
            {
                DataTemplateExtensions.CreateContent(testingTarget, View.Property.STATE, new View());
            }
            catch (Exception e)
            {
                tlog.Debug(tag, e.Message.ToString());
                Assert.Fail("CreateContent Fail!");
            }

            tlog.Debug(tag, $"DataTemplateExtensionsCreateContent END (OK)");
        }
Esempio n. 3
0
        public void DataTemplateSelectorSelectTemplateWithNullLoadTemplate()
        {
            tlog.Debug(tag, $"DataTemplateSelectorSelectTemplateWithNullLoadTemplate START");

            var testingTarget = new MyDataTemplateSelector();

            try
            {
                DataTemplateExtensions.CreateContent(testingTarget, "Color", new View());
            }
            catch (NotSupportedException e)
            {
                tlog.Debug(tag, e.Message.ToString());
                tlog.Debug(tag, $"DataTemplateSelectorSelectTemplateWithNullLoadTemplate END (OK)");
                Assert.Pass("Caught NotSupportedException: Pass!");
            }

            tlog.Debug(tag, $"DataTemplateSelectorSelectTemplateWithNullLoadTemplate END (OK)");
        }
Esempio n. 4
0
        public void ElementTemplateConstructorWithNullLoadTemplate()
        {
            tlog.Debug(tag, $"ElementTemplateConstructorWithNullLoadTemplate START");

            try
            {
                var testingTarget = new MyDataTemplateSelector();

                View view = new View()
                {
                    Color = Color.Cyan,
                };

                DataTemplateExtensions.CreateContent(testingTarget, View.Property.STATE, view);
            }
            catch (ArgumentNullException e)
            {
                tlog.Debug(tag, $"ElementTemplateConstructorWithNullLoadTemplate END (OK)");
                tlog.Debug(tag, e.Message.ToString());
                Assert.Pass("Caught ArgumentNullException: Pass!");
            }
        }
Esempio n. 5
0
        public CarouselViewGalleryPage()
        {
            _items = EmptyItems;

            _selector = new MyDataTemplateSelector();
            Func <ObservableCollection <Item> > itemsFactory = () =>
                                                               _items = new ObservableCollection <Item>()
            {
                new Baz(),
                new Poo(),
                new Foo(),
                new Bar(),
            };

            _carouselView = new CarouselView {
                BackgroundColor = Color.Purple,
                ItemTemplate    = _selector,
                Position        = StartPosition
            };

            _events           = new Queue <string>();
            _eventId          = 0;
            _position         = CreateValue($"{_carouselView.Position}", "Position");
            _selectedItem     = CreateValue("null", "SelectedItem");
            _selectedPosition = CreateValue("null", "SelectedPosition");
            _eventLog         = CreateValue("", "EventLog");

            _carouselView.ItemSelected += (s, o) => {
                var selectedItem   = (Item)o.SelectedItem;
                var selectedItemId = selectedItem?.Id.ToString() ?? "null";
                if (selectedItem != _carouselView.Item)
                {
                    throw new Exception("CarouselView.Item != ItemSelected");
                }
                _selectedItem.Text = $"{selectedItemId}";
                OnEvent("i");
            };

            _carouselView.PositionSelected += (s, o) => {
                var selectedPosition = (int)o.SelectedPosition;
                if (_items != null && _items.Any() && _items[selectedPosition] != _carouselView.Item)
                {
                    throw new Exception("CarouselView.Item != Items[selectedPosition]");
                }
                _selectedPosition.Text = $"{selectedPosition}";
                OnEvent("p");
            };

            BackgroundColor = Color.Blue;

            var moveBar = new StackLayout {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.Start,
                Children          =
                {
                    CreateButton("<<", "First",    () => _carouselView.Position = 0),
                    CreateButton("<",  "Previous", () => {
                        try {
                            _carouselView.Position--;
                            if (_items == EmptyItems)
                            {
                                UpdatePosition();
                            }
                        } catch (ArgumentException) { OnEvent("e"); }
                    }),
                    CreateButton(">",  "Next",     () => {
                        try {
                            _carouselView.Position++;
                            if (_items == EmptyItems)
                            {
                                UpdatePosition();
                            }
                        } catch (ArgumentException) { OnEvent("e"); }
                    }),
                    CreateButton(">>", "Last",     () => _carouselView.Position = _items.Count - 1)
                }
            };
            var loadBar = new StackLayout {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.Start,
                Children          =
                {
                    CreateButton("Load",  "Load",  () => {
                        try {
                            _carouselView.ItemsSource = _items = itemsFactory();
                        } catch (ArgumentException) {
                            OnEvent("e");
                        }
                    }),
                    CreateButton("Load0", "Load0", () => {
                        try {
                            _carouselView.ItemsSource = _items = EmptyItems;
                        } catch (ArgumentException) {
                            OnEvent("e");
                        }
                    }),
                    CreateButton("Clear", "Clear", () => {
                        _items = null;
                        _carouselView.ItemsSource = null;
                    }),
                    CreateButton("Add",   "Add",   () => {
                        _items.Insert(0,  new Moo());
                    })
                }
            };

            var statusBar = new StackLayout {
                Orientation = StackOrientation.Horizontal,
                Children    =
                {
                    CreateCopy("Pos:"),       _position,
                    CreateCopy("OnItemSel:"), _selectedItem,
                    CreateCopy("OnPosSel:"),  _selectedPosition,
                }
            };

            var logBar = new StackLayout {
                Orientation = StackOrientation.Horizontal,
                Children    = { _eventLog }
            };

            Content = new StackLayout {
                Children =
                {
                    _carouselView,
                    moveBar,
                    loadBar,
                    statusBar,
                    logBar
                }
            };
        }
 public MyUserControl()
 {
     Resources["MyDataTemplateSelector"] = new MyDataTemplateSelector(this);
     InitializeComponent();
 }