private void Refresh()
        {
            var gridContext = ModernDataGridControl.GetDataGridContext(this);

            if (gridContext != null)
            {
                var gridControl = gridContext.DataGridControl as ModernDataGridControl;
                this.filteredItems.Clear();

                if (gridControl.SearchText != string.Empty)
                {
                    var i     = 0;
                    var items = gridContext.GetScrollableItemInfos();
                    foreach (var item in items)
                    {
                        if (gridControl.Match(item.GridContext, item.Item) != null)
                        {
                            this.filteredItems.Add(i);
                        }
                        i++;
                    }
                    this.count = items.Count();
                }
                this.InvalidateVisual();
            }
        }
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            this.dataGridControl = this.Template.FindName("PART_DataGridControl", this) as ModernDataGridControl;

            if (this.dataGridControl == null)
            {
                return;
            }

            this.view = this.dataGridControl.View as TableView;

            {
                try
                {
                    this.dataGridControl.Columns.Add(new Column()
                    {
                        FieldName = CremaSchema.Index, ReadOnly = true, Width = 50, Title = nameof(CremaSchema.Index)
                    });
                }
                catch
                {
                }
            }
            //if (this.dataGridControl.Columns.Count == 0)
            {
                try
                {
                    var columnNames = new string[] { "tagColumn", "enableColumn", "modifierColumn", "modifiedDateTimeColumn", "creatorColumn", "createdDateTimeColumn" };
                    foreach (var item in columnNames)
                    {
                        if (this.TryFindResource(item) is ColumnBase column)
                        {
                            this.dataGridControl.Columns.Add(column);
                        }
                    }
                }
                catch
                {
                }
            }

            this.dataGridControl.RowDrag += DataGridControl_RowDrag;
            this.dataGridControl.RowDrop += DataGridControl_RowDrop;
            this.dataGridControl.ItemsSourceChangeCompleted += DataGridControl_ItemsSourceChangeCompleted;
            this.dataGridControl.Columns.CollectionChanged  += Columns_CollectionChanged;

            BindingOperations.SetBinding(this.viewSource, CollectionViewSource.SourceProperty, new Binding("Source.DefaultView")
            {
                Source = this,
            });
            BindingOperations.SetBinding(this.dataGridControl, ItemsControl.ItemsSourceProperty, new Binding()
            {
                Source = this.viewSource,
            });
            BindingOperations.SetBinding(this.dataGridControl, ModernDataGridControl.IsVerticalScrollBarOnLeftSideProperty, new Binding("IsVerticalScrollBarOnLeftSide")
            {
                Source = this,
            });
        }
示例#3
0
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);

            var index       = this.ParentColumn.VisiblePosition;
            var gridContext = ModernDataGridControl.GetDataGridContext(this);
            var gridControl = gridContext.DataGridControl as ModernDataGridControl;

            if (Keyboard.Modifiers == ModifierKeys.Control)
            {
                gridControl.AddSelection(this);
                e.Handled = true;
            }
            else if (Keyboard.Modifiers == ModifierKeys.Shift)
            {
                gridControl.SelectTo(this);
                e.Handled = true;
            }
            else if (Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift))
            {
                gridControl.AddSelectionTo(this);
                e.Handled = true;
            }
            else
            {
                if (gridControl.GlobalCurrentColumn == this.ParentColumn)
                {
                    this.mousePoint = e.GetPosition(this);
                }
                else if (gridControl.SelectionUnit == SelectionUnit.Cell)
                {
                    gridControl.Select(this);
                }
            }
        }
示例#4
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.dataTypeControl.ApplyTemplate();
            this.gridControl = this.dataTypeControl.Template.FindName("PART_DataGridControl", this.dataTypeControl) as ModernDataGridControl;

            this.searchBox.Visibility        = Visibility.Collapsed;
            this.searchBox.IsVisibleChanged += SearchBox_IsVisibleChanged;

            BindingOperations.SetBinding(this, SearchTextProperty, new Binding(SearchBox.TextProperty.Name)
            {
                Source = this.searchBox,
                Mode   = BindingMode.TwoWay,
            });

            if (this.gridControl != null)
            {
                this.gridControl.ItemsSourceChangeCompleted += GridControl_ItemsSourceChangeCompleted;

                for (var i = 0; i < this.gridControl.CommandBindings.Count; i++)
                {
                    var commandBinding = this.gridControl.CommandBindings[i];
                    if (commandBinding.Command == ModernDataGridCommands.NextMatchedItem || commandBinding.Command == ModernDataGridCommands.PrevMatchedItem)
                    {
                        this.CommandBindings.Add(commandBinding);
                    }
                }
            }
        }
        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);

            var gridContext = ModernDataGridControl.GetDataGridContext(this);
            var gridControl = gridContext.DataGridControl;

            gridControl.PropertyChanged += GridControl_PropertyChanged;
        }
        private void RefreshCount()
        {
            var gridContext = ModernDataGridControl.GetDataGridContext(this);

            if (gridContext != null)
            {
                var gridControl = gridContext.DataGridControl;
                this.count = gridContext.GetScrollableItems().Count();
                this.InvalidateVisual();
            }
        }
示例#7
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.dataTableControl.ApplyTemplate();
            this.gridControl = this.dataTableControl.Template.FindName("PART_DataGridControl", this.dataTableControl) as ModernDataGridControl;
            if (this.gridControl != null)
            {
                this.gridControl.ItemsSourceChangeCompleted += GridControl_ItemsSourceChangeCompleted;
                this.lineInfo = new GridControlLineInfo(this.gridControl);
            }
        }
示例#8
0
 public override void OnApplyTemplate()
 {
     base.OnApplyTemplate();
     this.gridControl = this.Template.FindName(PART_DataGrid, this) as ModernDataGridControl;
     if (this.gridControl != null)
     {
         this.gridControl.SelectionChanged += GridControl_SelectionChanged;
         this.gridControl.ItemsSource       = this.groupView;
         this.UpdateItemsSource();
         this.UpdateActualItemHeight();
     }
 }
示例#9
0
 protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
 {
     base.OnMouseLeftButtonUp(e);
     if (this.mousePoint.HasValue && this.mousePoint.Value == e.GetPosition(this))
     {
         if (this.ParentColumn.AllowSort == true)
         {
             var gridContext = ModernDataGridControl.GetDataGridContext(this);
             this.DoSort(gridContext.Items);
         }
     }
     this.mousePoint = null;
 }
示例#10
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            var isNumberFormatting = (bool)(this.configService[typeof(NumberCellFormattingMenuItem), nameof(NumberCellFormattingMenuItem.IsNumberFormatting)] ?? false);

            this.dataTableControl.ApplyTemplate();
            this.gridControl = this.dataTableControl.Template.FindName("PART_DataGridControl", this.dataTableControl) as ModernDataGridControl;
            this.gridControl.IsNumberFormatting = isNumberFormatting;
            if (this.gridControl != null)
            {
                this.gridControl.ItemsSourceChangeCompleted += GridControl_ItemsSourceChangeCompleted;
                this.lineInfo = new GridControlLineInfo(this.gridControl);
            }
        }
示例#11
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.dataGridControl = this.Template.FindName("PART_DataGridControl", this) as ModernDataGridControl;

            this.dataGridControl.Columns.Add(this.Resources["tagColumn"] as ColumnBase);
            this.dataGridControl.Columns.Add(this.Resources["enableColumn"] as ColumnBase);
            this.dataGridControl.Columns.Add(this.Resources["modifierColumn"] as ColumnBase);
            this.dataGridControl.Columns.Add(this.Resources["modifiedDateTimeColumn"] as ColumnBase);

            this.dataGridControl.Columns.CollectionChanged += Columns_CollectionChanged;
            (this.dataGridControl.VisibleColumns as INotifyCollectionChanged).CollectionChanged += VisibleColumns_CollectionChanged;
            this.dataGridControl.ItemsSourceChangeCompleted += dataGridControl_ItemsSourceChangeCompleted;
        }
        private void RefreshIndex()
        {
            var gridContext = ModernDataGridControl.GetDataGridContext(this);

            if (gridContext != null)
            {
                var gridControl = gridContext.DataGridControl;

                if (gridControl.GlobalCurrentItem == null)
                {
                    this.index = -1;
                }
                else
                {
                    this.index = EnumerableUtility.IndexOf(gridContext.GetScrollableItems(), gridControl.GlobalCurrentItem);
                }
                this.InvalidateVisual();
            }
        }
示例#13
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            this.dataGridControl = this.Template.FindName("PART_DataGridControl", this) as ModernDataGridControl;

            if (this.dataGridControl == null)
            {
                return;
            }

            if (this.dataGridControl.Columns.Count == 0)
            {
                try
                {
#if DEBUG
                    this.dataGridControl.Columns.Add(new Column()
                    {
                        FieldName = CremaSchema.Index, Title = CremaSchema.Index,
                    });
#endif
                    this.dataGridControl.Columns.Add(new Column()
                    {
                        FieldName = CremaSchema.ID, Title = CremaSchema.ID,
                    });
                }
                catch
                {
                }
            }

            this.dataGridControl.RowDrag += DataGridControl_RowDrag;
            this.dataGridControl.RowDrop += DataGridControl_RowDrop;
            this.dataGridControl.ItemsSourceChangeCompleted += DataGridControl_ItemsSourceChangeCompleted;
            BindingOperations.SetBinding(this.viewSource, DataGridCollectionViewSource.SourceProperty, new Binding("ItemsSource")
            {
                Source = this,
            });
            BindingOperations.SetBinding(this.dataGridControl, ModernDataGridControl.ItemsSourceProperty, new Binding()
            {
                Source = this.viewSource,
            });
            this.dataGridControl.IsDeleteCommandEnabled = true;
        }
示例#14
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            this.dataGridControl = this.Template.FindName("PART_DataGridControl", this) as ModernDataGridControl;

            if (this.dataGridControl == null)
            {
                return;
            }

            //if (this.dataGridControl.Columns.Count == 0)
            {
                try
                {
#if DEBUG
                    this.dataGridControl.Columns.Add(new Column()
                    {
                        FieldName = CremaSchema.Index, Title = CremaSchema.Index,
                    });
#endif
                    this.dataGridControl.Columns.Add(new Column()
                    {
                        FieldName = CremaSchema.ID, Title = CremaSchema.ID,
                    });
                }
                catch
                {
                }
            }

            if (this.dataGridControl.AutoCreateColumns == false)
            {
                try
                {
                    var columnNames = new string[] { "tagColumn", "enableColumn", "modifierColumn", "modifiedDateTimeColumn", "creatorColumn", "createdDateTimeColumn" };
                    foreach (var item in columnNames)
                    {
                        if (this.TryFindResource(item) is ColumnBase column)
                        {
                            this.dataGridControl.Columns.Add(column);
                        }
                    }
                }
                catch
                {
                }
            }

            this.dataGridControl.RowDrag += DataGridControl_RowDrag;
            this.dataGridControl.RowDrop += DataGridControl_RowDrop;
            this.dataGridControl.ItemsSourceChangeCompleted += DataGridControl_ItemsSourceChangeCompleted;
            BindingOperations.SetBinding(this.viewSource, DataGridCollectionViewSource.SourceProperty, new Binding($"{nameof(Source)}.{nameof(CremaDataType.View)}")
            {
                Source = this,
            });
            BindingOperations.SetBinding(this.dataGridControl, ModernDataGridControl.ItemsSourceProperty, new Binding()
            {
                Source = this.viewSource,
            });
            BindingOperations.SetBinding(this.dataGridControl, ModernDataGridControl.IsVerticalScrollBarOnLeftSideProperty, new Binding(nameof(IsVerticalScrollBarOnLeftSide))
            {
                Source = this,
            });
            this.dataGridControl.IsDeleteCommandEnabled = true;
        }
示例#15
0
 protected override void PrepareContainer(DataGridContext dataGridContext, object item)
 {
     base.PrepareContainer(dataGridContext, item);
     ModernDataGridControl.SetInsertionRow(dataGridContext, this);
 }
示例#16
0
 public void RefreshDataContextError()
 {
     if (this.DataContext is IDataErrorInfo errorInfo && errorInfo.Error != string.Empty)
     {
         ModernDataGridControl.SetDataContextError(this, errorInfo.Error);
     }
示例#17
0
 public GridControlLineInfo(ModernDataGridControl gridControl, string displayName)
 {
     this.gridControl = gridControl;
     this.displayName = displayName;
     this.gridControl.PropertyChanged += GridControl_PropertyChanged;
 }
示例#18
0
 public GridControlLineInfo(ModernDataGridControl gridControl)
     : this(gridControl, null)
 {
 }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int index = value is int?(int)value : 0;

            return(new SolidColorBrush(ModernDataGridControl.GetColor(index)));
        }
示例#20
0
 protected void RefreshDataContextError()
 {
     if (this.DataContext is IDataErrorInfo errorInfo && this.FieldName != string.Empty && errorInfo[this.FieldName] != string.Empty)
     {
         ModernDataGridControl.SetDataContextError(this, errorInfo[this.FieldName]);
     }