Пример #1
0
        protected override void OnElementChanged(ElementChangedEventArgs <ListView> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {
                e.OldElement.ItemSelected      -= OnElementItemSelected;
                e.OldElement.ScrollToRequested -= OnElementScrollToRequested;
            }

            if (e.NewElement != null)
            {
                e.NewElement.ItemSelected      += OnElementItemSelected;
                e.NewElement.ScrollToRequested += OnElementScrollToRequested;

                if (List == null)
                {
                    List = new WListView
                    {
                        IsSynchronizedWithCurrentItem = false,
                        ItemTemplate       = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["CellTemplate"],
                        HeaderTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        FooterTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        ItemContainerStyle = (Windows.UI.Xaml.Style)WApp.Current.Resources["FormsListViewItem"],
                        GroupStyleSelector = (GroupStyleSelector)WApp.Current.Resources["ListViewGroupSelector"]
                    };

                    // In order to support tapping on elements within a list item, we handle
                    // ListView.Tapped (which can be handled by child elements in the list items
                    // and prevented from bubbling up) rather than ListView.ItemClick
                    List.Tapped += ListOnTapped;

                    if (ShouldCustomHighlight)
                    {
                        List.SelectionChanged += OnControlSelectionChanged;
                    }

                    List.SetBinding(ItemsControl.ItemsSourceProperty, "");
                }

                // WinRT throws an exception if you set ItemsSource directly to a CVS, so bind it.
                List.DataContext = new CollectionViewSource {
                    Source = Element.ItemsSource, IsSourceGrouped = Element.IsGroupingEnabled
                };

#if !WINDOWS_UWP
                var selected = Element.SelectedItem;
                if (selected != null)
                {
                    OnElementItemSelected(null, new SelectedItemChangedEventArgs(selected));
                }
#endif

                UpdateGrouping();
                UpdateHeader();
                UpdateFooter();
                ClearSizeEstimate();
            }
        }
Пример #2
0
        protected override void OnElementChanged(ElementChangedEventArgs <ListView> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {
                e.OldElement.ItemSelected      -= OnElementItemSelected;
                e.OldElement.ScrollToRequested -= OnElementScrollToRequested;
            }

            if (e.NewElement != null)
            {
                e.NewElement.ItemSelected      += OnElementItemSelected;
                e.NewElement.ScrollToRequested += OnElementScrollToRequested;

                if (List == null)
                {
                    List = new WListView
                    {
                        IsSynchronizedWithCurrentItem = false,
                        ItemTemplate       = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["CellTemplate"],
                        HeaderTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        FooterTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        ItemContainerStyle = (Windows.UI.Xaml.Style)WApp.Current.Resources["FormsListViewItem"],
                        GroupStyleSelector = (GroupStyleSelector)WApp.Current.Resources["ListViewGroupSelector"]
                    };

                    List.IsItemClickEnabled = true;
                    List.ItemClick         += OnListItemClicked;

                    List.SelectionChanged += OnControlSelectionChanged;

                    List.SetBinding(ItemsControl.ItemsSourceProperty, "");
                }

                // WinRT throws an exception if you set ItemsSource directly to a CVS, so bind it.
                List.DataContext = new CollectionViewSource {
                    Source = Element.ItemsSource, IsSourceGrouped = Element.IsGroupingEnabled
                };

#if !WINDOWS_UWP
                var selected = Element.SelectedItem;
                if (selected != null)
                {
                    OnElementItemSelected(null, new SelectedItemChangedEventArgs(selected));
                }
#endif

                UpdateGrouping();
                UpdateHeader();
                UpdateFooter();
                ClearSizeEstimate();
            }
        }
        protected override void OnElementChanged(ElementChangedEventArgs <ListView> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null)
            {
                e.OldElement.ItemSelected      -= OnElementItemSelected;
                e.OldElement.ScrollToRequested -= OnElementScrollToRequested;
                ((ITemplatedItemsView <Cell>)e.OldElement).TemplatedItems.CollectionChanged -= OnCollectionChanged;
            }

            if (e.NewElement != null)
            {
                e.NewElement.ItemSelected      += OnElementItemSelected;
                e.NewElement.ScrollToRequested += OnElementScrollToRequested;
                ((ITemplatedItemsView <Cell>)e.NewElement).TemplatedItems.CollectionChanged += OnCollectionChanged;

                if (List == null)
                {
                    List = new WListView
                    {
                        IsSynchronizedWithCurrentItem = false,
                        ItemTemplate       = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["CellTemplate"],
                        HeaderTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        FooterTemplate     = (Windows.UI.Xaml.DataTemplate)WApp.Current.Resources["View"],
                        ItemContainerStyle = (Windows.UI.Xaml.Style)WApp.Current.Resources["FormsListViewItem"],
                        GroupStyleSelector = (GroupStyleSelector)WApp.Current.Resources["ListViewGroupSelector"]
                    };

                    List.SelectionChanged += OnControlSelectionChanged;

                    List.SetBinding(ItemsControl.ItemsSourceProperty, "");
                }

                ReloadData();

                if (Element.SelectedItem != null)
                {
                    OnElementItemSelected(null, new SelectedItemChangedEventArgs(Element.SelectedItem));
                }

                UpdateGrouping();
                UpdateHeader();
                UpdateFooter();
                UpdateSelectionMode();
                UpdateWindowsSpecificSelectionMode();
                ClearSizeEstimate();
            }
        }
        private void InitPivot()
        {
            var binding = new Binding { Source = ViewModel, Path = new PropertyPath("CurrentRecords") };
            _itemTemplate = Resources["ListViewTemplate"] as DataTemplate;
            foreach (var day in Enum.GetNames(typeof(DayOfWeek)))
            {
                var listView = new ListView
                {
                    ItemTemplate = _itemTemplate,
                    IsItemClickEnabled = true
                };
                listView.ItemClick += ItemView_ItemClick;
                listView.SetBinding(ItemsControl.ItemsSourceProperty, binding);
                var pivotItem = new PivotItem { Header = day, Name = day, Content = listView };
                pivot.Items.Add(pivotItem);
            }

        }
 private ISemanticZoomInformation GetZoomedInView()
 {
     var view = new ListView
     {
         ItemTemplate = ItemTemplate,
         GroupStyle = // ListView.GroupStyle is a collection, yes...
         {
             new GroupStyle
             {
                 HeaderTemplate = GetGroupHeaderTemplate()
             }
         },
         // HACK: The group header template contains a top margin, so we cancel the first one here
         Padding = new Thickness( 0, ZoomedInViewTopMargin - ZoomedInGroupFooterSize, 0, 0 )
     };
     // Weird way CollectionViewSources have to be used
     view.SetBinding
     (
         ListView.ItemsSourceProperty,
         new Binding { Source = ItemsViewSource }
     );
     view.SetBinding
     (
         ListView.SelectedItemProperty,
         new Binding { Source = this, Path = new PropertyPath( "SelectedItem" ) }
     );
     return view;
 }
 private ISemanticZoomInformation GetZoomedOutView()
 {
     var view = new ListView
     {
         ItemTemplate = GetGroupItemTemplate(),
         Foreground = ZoomedOutForegroundBrush,
         Background = ZoomedOutBackgroundBrush,
         Padding = ZoomedOutViewPadding
     };
     // weird way CollectionViewSources have to be used
     view.SetBinding
     (
         ListView.ItemsSourceProperty,
         new Binding { Source = ItemsViewSource, Path = new PropertyPath( "CollectionGroups" ) }
     );
     view.SetBinding
     (
         ListView.SelectedItemProperty,
         new Binding { Source = this, Path = new PropertyPath( "SelectedItem" ) }
     );
     return view;
 }