Esempio n. 1
0
		public MyBehavior(CheckBox source)
		{
			
			this.checkBox = source;
            this.checkBox.Unloaded += checkBox_Unloaded;
			checkBox.Dispatcher.BeginInvoke(new Action
				(() =>
				{
					grid = checkBox.ParentOfType<RadGridView>();
                    
					groupRow = checkBox.ParentOfType<GridViewGroupRow>();
                    
					if (grid != null && groupRow != null)
					{
                        groupRow.Unloaded += groupRow_Unloaded;
						this.UpdateIsChecked(groupRow.Group);
					}

					if (grid != null)
					{
						grid.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
						grid.SelectionUnit = GridViewSelectionUnit.FullRow;

                        checkBox.Click += clickHandler = (s, e) =>
                        {
                            grid.SelectionChanged -= grid_SelectionChanged;

                            if (checkBox.IsChecked == true)
                            {
                                grid.Select(this.GetSubGroupItems(((GroupViewModel)checkBox.DataContext).Group));
                            }
                            else
                            {
                                grid.Unselect(this.GetSubGroupItems(((GroupViewModel)checkBox.DataContext).Group));
                            }

                            grid.SelectionChanged += grid_SelectionChanged;
                        }; 

						groupRow.DataContextChanged += dataContextChangedHandler = (s, e) =>
						{
							this.UpdateIsChecked(e.NewValue as IGroup);
						};
					}
				}
				));
		}
Esempio n. 2
0
        public MyBehavior(CheckBox source)
        {
            this.checkBox           = source;
            this.checkBox.Unloaded += checkBox_Unloaded;
            checkBox.Dispatcher.BeginInvoke(new Action
                                                (() =>
            {
                grid = checkBox.ParentOfType <RadGridView>();

                groupRow = checkBox.ParentOfType <GridViewGroupRow>();

                if (grid != null && groupRow != null)
                {
                    groupRow.Unloaded += groupRow_Unloaded;
                    this.UpdateIsChecked(groupRow.Group);
                }

                if (grid != null)
                {
                    grid.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
                    grid.SelectionUnit = GridViewSelectionUnit.FullRow;

                    checkBox.Click += clickHandler = (s, e) =>
                    {
                        grid.SelectionChanged -= grid_SelectionChanged;

                        if (checkBox.IsChecked == true)
                        {
                            grid.Select(this.GetSubGroupItems(((GroupViewModel)checkBox.DataContext).Group));
                        }
                        else
                        {
                            grid.Unselect(this.GetSubGroupItems(((GroupViewModel)checkBox.DataContext).Group));
                        }

                        grid.SelectionChanged += grid_SelectionChanged;
                    };

                    groupRow.DataContextChanged += dataContextChangedHandler = (s, e) =>
                    {
                        this.UpdateIsChecked(e.NewValue as IGroup);
                    };
                }
            }
                                                ));
        }
Esempio n. 3
0
        private void ScrollToContentOnExpand(GridViewGroupRow groupRow)
        {
            var group = groupRow.GetValue(GroupRowPropertySupplier.GroupRecordInfoProperty) as GroupRecord;
            if (group != null && group.IsAttached && group.IsExpanded &&
                !_openedGroups.Contains(group.GroupCode) && ((IList)group.Items).Count > 0)
            {
                _openedGroups = null;

                if (group.Items.OfType<IGroup>().Any())
                {
                    var scrollViewer = SearchList.ChildrenOfType<GridViewScrollViewer>().FirstOrDefault();
                    if (scrollViewer != null)
                    {
                        var contentPresenter = groupRow.FindChildByType<ContentPresenter>();
                        if (contentPresenter != null)
                        {
                            GeneralTransform visualTransform = contentPresenter.TransformToVisual(scrollViewer);
                            Rect rectangle = visualTransform.TransformBounds(
                                new Rect(new Point(contentPresenter.Margin.Left, contentPresenter.Margin.Top), contentPresenter.RenderSize));

                            var newOffset = scrollViewer.VerticalOffset +
                                            Math.Max(0, rectangle.Top - (scrollViewer.VerticalOffset + scrollViewer.ViewportHeight / 2));

                            scrollViewer.ScrollToVerticalOffset(newOffset);
                        }
                    }
                }
                else
                    SearchList.ScrollIntoView(((IList)group.Items)[0]);
            }
        }
        /// <summary>
        /// Method to catch click event to open context menu
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RadContextMenu_Opened(object sender, RoutedEventArgs e)
        {
            if (sender == null || e == null)
            {
                return;
            }
            RadContextMenu menu = (RadContextMenu)sender;

            if (menu == null)
            {
                return;
            }
            GridViewRow       row       = menu.GetClickedElement <GridViewRow>();
            GridViewGroupRow  groupRow  = menu.GetClickedElement <GridViewGroupRow>();
            GridViewHeaderRow headerRow = menu.GetClickedElement <GridViewHeaderRow>();

            if (row != null)
            {
                row.IsSelected = row.IsCurrent = true;
                (menu.Items[0] as RadMenuItem).IsEnabled = true;
                (menu.Items[1] as RadMenuItem).IsEnabled = true;
                (menu.Items[2] as RadMenuItem).IsEnabled = true;
                (menu.Items[3] as RadMenuItem).IsEnabled = true;
                return;
            }

            if (groupRow != null)
            {
                (menu.Items[0] as RadMenuItem).IsEnabled = true;
                (menu.Items[1] as RadMenuItem).IsEnabled = true;
                (menu.Items[2] as RadMenuItem).IsEnabled = true;
                (menu.Items[3] as RadMenuItem).IsEnabled = false;
                if (!(groupRow.Group.Key is string))
                {
                    return;
                }

                string groupName = groupRow.Group.Key as string;
                int    itemCount = 0;
                foreach (MarketSnapshotPerformanceData item in this.radGridSnapshot.Items)
                {
                    if (item.MarketSnapshotPreferenceInfo.GroupName == groupName &&
                        item.MarketSnapshotPreferenceInfo.EntityOrder == 1)
                    {
                        this.radGridSnapshot.SelectedItem = item;
                        return;
                    }
                    itemCount++;
                }
                return;
            }
            if (headerRow != null)
            {
                (menu.Items[0] as RadMenuItem).IsEnabled = true;
                (menu.Items[1] as RadMenuItem).IsEnabled = false;
                (menu.Items[2] as RadMenuItem).IsEnabled = false;
                (menu.Items[3] as RadMenuItem).IsEnabled = false;
                return;
            }
            menu.IsOpen = false;
        }
        private void GridViewGroupRow_Loaded(object sender, RoutedEventArgs args)
        {
            GridViewGroupRow groupRow = (GridViewGroupRow)args.OriginalSource;

            groupRow.IsExpanded = true;
        }