Example #1
0
        private void RadContextMenu_ItemClick(object sender, RadRoutedEventArgs e)
        {
            RadContextMenu menu           = (RadContextMenu)sender;
            RadMenuItem    clickedItem    = e.OriginalSource as RadMenuItem;
            GridViewRow    row            = menu.GetClickedElement <GridViewRow>();
            GroupHeaderRow groupHeaderRow = menu.GetClickedElement <GroupHeaderRow>();

            if (clickedItem != null && row != null)
            {
                string header = Convert.ToString(clickedItem.Header);

                switch (header)
                {
                case "Add":
                    gridView.BeginInsert();
                    break;

                case "Edit":
                    gridView.BeginEdit();
                    break;

                case "Delete":
                    gridView.Items.Remove(row.DataContext);
                    break;

                default:
                    break;
                }
            }
            else if (clickedItem != null && groupHeaderRow != null)
            {
                string header = Convert.ToString(clickedItem.Header);

                switch (header)
                {
                case "Delete":
                    var group = groupHeaderRow.DataContext as QueryableCollectionViewGroup;
                    var items = group.Items.ToList();
                    foreach (var item in items)
                    {
                        gridView.Items.Remove(item);
                    }
                    break;

                default:
                    break;
                }
            }
        }
Example #2
0
        private void RadContextMenu_Opened(object sender, RoutedEventArgs e)
        {
            RadContextMenu menu           = (RadContextMenu)sender;
            GridViewRow    row            = menu.GetClickedElement <GridViewRow>();
            GroupHeaderRow groupHeaderRow = menu.GetClickedElement <GroupHeaderRow>();


            if (row != null && !row.IsInEditMode)
            {
                menu.Items.Clear();

                RadMenuItem item = new RadMenuItem();
                item.Header = "Add";
                menu.Items.Add(item);

                item        = new RadMenuItem();
                item.Header = "Edit";
                menu.Items.Add(item);

                item        = new RadMenuItem();
                item.Header = "Delete";
                menu.Items.Add(item);

                row.IsSelected = row.IsCurrent = true;
                GridViewCell cell = menu.GetClickedElement <GridViewCell>();
                if (cell != null)
                {
                    cell.IsCurrent = true;
                }
            }
            else if (groupHeaderRow != null)
            {
                menu.Items.Clear();

                RadMenuItem item = new RadMenuItem();
                item.Header = "Delete";
                menu.Items.Add(item);
            }
            else
            {
                menu.IsOpen = false;
            }
        }
Example #3
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 <GroupHeaderRow>();

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

                if (grid != null)
                {
                    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);
                    };
                }
            }
                                                ));
        }