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(); } }
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; }