예제 #1
0
        // create a group item for the given group
        DependencyObject ContainerForGroup(CollectionViewGroup group)
        {
            _generatesGroupItems = true;
            if (!ShouldHide(group))
            {
                // normal group - link a new GroupItem
                GroupItem groupItem = new GroupItem();

                LinkContainerToItem(groupItem, group);

                // create the generator
                groupItem.Generator = new ItemContainerGenerator(this, groupItem);

                return groupItem;
            }
            else
            {
                // hidden empty group - link a new EmptyGroupItem
                AddEmptyGroupItem(group);

                // but don't return it to layout
                return null;
            }
        }
예제 #2
0
 private ItemContainerGenerator(ItemContainerGenerator parent, GroupItem groupItem)
     : this(parent, parent.Host, groupItem, parent.Level + 1)
 {
 }
예제 #3
0
        internal static ItemsPresenter FromGroupItem(GroupItem groupItem) 
        {
            if (groupItem == null) 
                return null; 

            Visual parent = VisualTreeHelper.GetParent(groupItem) as Visual; 
            if (parent == null)
                return null;

            return VisualTreeHelper.GetParent(parent) as ItemsPresenter; 
        }
 ///
 public GroupItemAutomationPeer(GroupItem owner): base(owner)
 {
 }
예제 #5
0
        /// <summary>
        /// Initializes the owner and interfaces for the virtualization services it supports.
        /// </summary>
        private void GetOwners(
            bool shouldSetVirtualizationState,
            bool isHorizontal,
            out ItemsControl itemsControl,
            out GroupItem groupItem,
            out IContainItemStorage itemStorageProvider,
            out IHierarchicalVirtualizationAndScrollInfo virtualizationInfoProvider,
            out object parentItem,
            out bool mustDisableVirtualization)
        {
            groupItem = null;
            parentItem = null;

            bool isScrolling = IsScrolling;

            mustDisableVirtualization = isScrolling ? MustDisableVirtualization : false;

            DependencyObject itemsOwner = ItemsControl.GetItemsOwnerInternal(this, out itemsControl);
            if (itemsOwner != itemsControl)
            {
                groupItem = itemsOwner as GroupItem;
                parentItem = itemsControl.ItemContainerGenerator.ItemFromContainer(groupItem);
            }
            else if (!isScrolling)
            {
                ItemsControl parentItemsControl = ItemsControl.GetItemsOwnerInternal(VisualTreeHelper.GetParent(itemsControl)) as ItemsControl;
                if (parentItemsControl != null)
                {
                    parentItem = parentItemsControl.ItemContainerGenerator.ItemFromContainer(itemsControl);
                }
                else
                {
                    parentItem = this;
                }
            }
            else
            {
                parentItem = this;
            }

            itemStorageProvider = itemsOwner as IContainItemStorage;
            virtualizationInfoProvider = null;

            if (groupItem != null)
            {
                virtualizationInfoProvider = GetVirtualizingProvider(groupItem);
                mustDisableVirtualization = virtualizationInfoProvider != null ? virtualizationInfoProvider.MustDisableVirtualization : false;
            }
            else if (!isScrolling)
            {
                virtualizationInfoProvider = GetVirtualizingProvider(itemsControl);
                mustDisableVirtualization = virtualizationInfoProvider != null ? virtualizationInfoProvider.MustDisableVirtualization : false;
            }

            if (shouldSetVirtualizationState)
            {
                //
                // Synchronize properties such as IsVirtualizing, IsRecycling & IsPixelBased
                //
                SetVirtualizationState(itemStorageProvider, itemsControl, mustDisableVirtualization);
            }
        }
예제 #6
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.LoggerType = ((System.Windows.Controls.GroupItem)(target));
                return;

            case 2:
                this.NoLog = ((System.Windows.Controls.RadioButton)(target));
                return;

            case 3:
                this.Summary = ((System.Windows.Controls.RadioButton)(target));
                return;

            case 4:
                this.Verbose = ((System.Windows.Controls.RadioButton)(target));
                return;

            case 5:

            #line 18 "..\..\MainWindow.xaml"
                ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);

            #line default
            #line hidden
                return;

            case 6:
                this.txt = ((System.Windows.Controls.TextBox)(target));
                return;

            case 7:

            #line 20 "..\..\MainWindow.xaml"
                ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Master_Click);

            #line default
            #line hidden
                return;

            case 8:

            #line 21 "..\..\MainWindow.xaml"
                ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Slave_Click);

            #line default
            #line hidden
                return;

            case 9:
                this.OptionType = ((System.Windows.Controls.GroupItem)(target));
                return;

            case 10:
                this.NoDeleteOption = ((System.Windows.Controls.RadioButton)(target));
                return;

            case 11:
                this.DeleteOption = ((System.Windows.Controls.RadioButton)(target));
                return;
            }
            this._contentLoaded = true;
        }
예제 #7
0
        /// <summary>
        /// Initializes the owner and interfaces for the virtualization services it supports.
        /// </summary>
        private void GetOwners(
            bool shouldSetVirtualizationState,
            bool isHorizontal,
            out ItemsControl itemsControl,
            out GroupItem groupItem,
            out IContainItemStorage itemStorageProvider,
            out IHierarchicalVirtualizationAndScrollInfo virtualizationInfoProvider,
            out object parentItem,
            out IContainItemStorage parentItemStorageProvider,
            out bool mustDisableVirtualization)
        {
            groupItem = null;
            parentItem = null;
            parentItemStorageProvider = null;

            bool isScrolling = IsScrolling;

            mustDisableVirtualization = isScrolling ? MustDisableVirtualization : false;

            ItemsControl parentItemsControl = null;
            DependencyObject itemsOwner = ItemsControl.GetItemsOwnerInternal(this, out itemsControl);
            if (itemsOwner != itemsControl)
            {
                groupItem = itemsOwner as GroupItem;
                parentItem = itemsControl.ItemContainerGenerator.ItemFromContainer(groupItem);
            }
            else if (!isScrolling)
            {
                parentItemsControl = ItemsControl.GetItemsOwnerInternal(VisualTreeHelper.GetParent(itemsControl)) as ItemsControl;
                if (parentItemsControl != null)
                {
                    parentItem = parentItemsControl.ItemContainerGenerator.ItemFromContainer(itemsControl);
                }
                else
                {
                    parentItem = this;
                }
            }
            else
            {
                parentItem = this;
            }

            itemStorageProvider = itemsOwner as IContainItemStorage;
            virtualizationInfoProvider = null;
            parentItemStorageProvider = (IsVSP45Compat || isScrolling || itemsOwner == null) ? null :
                ItemsControl.GetItemsOwnerInternal(VisualTreeHelper.GetParent(itemsOwner)) as IContainItemStorage;

            if (groupItem != null)
            {
                virtualizationInfoProvider = GetVirtualizingProvider(groupItem);
                mustDisableVirtualization = virtualizationInfoProvider != null ? virtualizationInfoProvider.MustDisableVirtualization : false;
            }
            else if (!isScrolling)
            {
                virtualizationInfoProvider = GetVirtualizingProvider(itemsControl);
                mustDisableVirtualization = virtualizationInfoProvider != null ? virtualizationInfoProvider.MustDisableVirtualization : false;
            }

            if (shouldSetVirtualizationState)
            {
                // this is a good opportunity to set up tracing, if requested
                if (ScrollTracer.IsEnabled && !ScrollTracer.IsConfigured(this))
                {
                    ScrollTracer.ConfigureTracing(this, itemsOwner, parentItem, itemsControl);
                }

                //
                // Synchronize properties such as IsVirtualizing, IsRecycling & IsPixelBased
                //
                SetVirtualizationState(itemStorageProvider, itemsControl, mustDisableVirtualization);
            }
        }
예제 #8
0
        private void InitTimeGroups()
        {
            timeGroups = new ObservableCollection<GroupItem<MatchItem>>();

            var TimeResult = (from match in Constants.LoadMatchItems()
                              orderby DateTime.Parse(match.Date)
                              group match by match.Date into pDate
                              select pDate.Key).Distinct();

            foreach (var date in TimeResult)
            {
                GroupItem<MatchItem> groupItem = new GroupItem<MatchItem>();
                groupItem.GroupName = date;

                var query = from match in Constants.LoadMatchItems()
                            where match.Date.Equals(date)
                            orderby match.Time
                            select match;

                var ob = Observable.GenerateWithTime(0, x => x < query.Count(),
                                                     x => query.ElementAt(x),
                                                     x => TimeSpan.FromMilliseconds(10),
                                                     x => x + 1);
                ob.ObserveOnDispatcher().Subscribe(x =>
                {
                    groupItem.Add(x);
                });

                timeGroups.Add(groupItem);
            }
        }
예제 #9
0
        private void InitTeamGroups()
        {
            teamGroups = new ObservableCollection<GroupItem<MatchItem>>();
            foreach (var team in Constants.GroupTeams.ToCharArray())
            {
                GroupItem<MatchItem> groupItem = new GroupItem<MatchItem>();
                groupItem.GroupName = String.Format(AppResources.GroupsFormat, team);

                var query = from match in Constants.LoadMatchItems()
                            where match.HomeTeamCode.Contains(team.ToString()) &&
                                  match.VisitingTeamCode.Contains(team.ToString())
                            select match;

                var ob = Observable.GenerateWithTime(0, x => x < query.Count(),
                                                     x => query.ElementAt(x),
                                                     x => TimeSpan.FromMilliseconds(10),
                                                     x => x + 1);
                ob.ObserveOnDispatcher().Subscribe(x =>
                {
                    groupItem.Add(x);
                });

                teamGroups.Add(groupItem);
            }
        }