private void DispatchDataViewChangedEvent(DataViewChangedEventArgs args, GridEventType type) { GridViewEventInfo eventInfo = new GridViewEventInfo(KnownEvents.ViewChanged, type, GridEventDispatchMode.Send); GridViewSynchronizationService.DispatchEvent(this.owner, new GridViewEvent((object)this.owner, (object)this.owner, new object[1] { (object)args }, eventInfo), false); }
public static void DispatchEvent( GridViewTemplate template, GridViewEvent eventData, bool postUI) { if (template == null) { throw new ArgumentNullException("Template"); } MasterGridViewTemplate masterTemplate = template.MasterTemplate; if (masterTemplate == null) { return; } GridViewSynchronizationService synchronizationService = masterTemplate.SynchronizationService; if (synchronizationService == null) { return; } if (eventData.Info.Type == GridEventType.Both && postUI) { KnownEvents id = eventData.Info.Id; bool critical = eventData.Info.Critical; object[] arguments = eventData.Arguments; object sender = eventData.Sender; object originator = eventData.Originator; GridViewEventInfo eventInfo1 = new GridViewEventInfo(id, GridEventType.Data, GridEventDispatchMode.Send, critical); GridViewEvent gridEvent1 = new GridViewEvent(sender, originator, arguments, eventInfo1); GridViewEventInfo eventInfo2 = new GridViewEventInfo(id, GridEventType.UI, GridEventDispatchMode.Post, critical); GridViewEvent gridEvent2 = new GridViewEvent(sender, originator, arguments, eventInfo2); synchronizationService.DispatchEvent(gridEvent1); synchronizationService.DispatchEvent(gridEvent2); } else { synchronizationService.DispatchEvent(eventData); } }
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { base.OnCollectionChanged(args); if (this.Suspended) { return; } GridViewEventInfo eventInfo = new GridViewEventInfo(KnownEvents.CollectionChanged, GridEventType.Both, GridEventDispatchMode.Send); GridViewSynchronizationService.DispatchEvent(this.owner, new GridViewEvent((object)this, (object)null, new object[1] { (object)args }, eventInfo), false); this.owner.EventDispatcher.RaiseEvent <GridViewCollectionChangedEventArgs>(EventDispatcher.GroupByChanged, (object)this.owner, new GridViewCollectionChangedEventArgs(this.owner, args)); }
protected virtual void DispatchEvent( KnownEvents id, GridEventType type, GridEventDispatchMode dispatchMode, object originator, object[] arguments) { if (this.ViewTemplate == null) { return; } GridViewEventInfo eventInfo = new GridViewEventInfo(id, type, dispatchMode); GridViewSynchronizationService.DispatchEvent(this.ViewTemplate, new GridViewEvent((object)this, originator, arguments, eventInfo), false); }
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs args) { base.OnCollectionChanged(args); if (this.Suspended || this.owner == null) { return; } this.ApplyFilter(); GridViewEventInfo eventInfo = new GridViewEventInfo(KnownEvents.CollectionChanged, GridEventType.Both, GridEventDispatchMode.Send); GridViewSynchronizationService.DispatchEvent(this.owner, new GridViewEvent((object)this, (object)null, new object[1] { (object)args }, eventInfo), false); this.owner.EventDispatcher.RaiseEvent <GridViewCollectionChangedEventArgs>(EventDispatcher.FilterChangedEvent, (object)this.owner, new GridViewCollectionChangedEventArgs(this.owner, args)); if (!this.owner.IsSelfReference || !this.owner.EnableHierarchyFiltering) { return; } this.DispatchDataViewChangedEvent(new DataViewChangedEventArgs(ViewChangedAction.GroupingChanged)); }
public GridViewRowInfo EndAddNewRow() { if (!this.newRowInitialized || !this.IsModified) { return((GridViewRowInfo)null); } GridViewCollectionChangingEventArgs args1 = new GridViewCollectionChangingEventArgs(this.ViewTemplate, Telerik.WinControls.Data.NotifyCollectionChangedAction.Add, (object)null, this.ViewTemplate.Rows.Count, -1); this.ViewTemplate.EventDispatcher.RaiseEvent <GridViewCollectionChangingEventArgs>(EventDispatcher.RowsChanging, (object)this.ViewTemplate, args1); if (args1.Cancel) { return((GridViewRowInfo)null); } GridViewRowCancelEventArgs args2 = new GridViewRowCancelEventArgs(new GridViewRowInfo[1] { (GridViewRowInfo)this }); this.ViewTemplate.EventDispatcher.RaiseEvent <GridViewRowCancelEventArgs>(EventDispatcher.UserAddingRow, (object)this.ViewTemplate, args2); if (args2.Cancel) { return((GridViewRowInfo)null); } if (this.ViewTemplate.IsVirtualRows) { GridViewObjectRelationalDataProvider hierarchyDataProvider = this.ViewTemplate.HierarchyDataProvider as GridViewObjectRelationalDataProvider; GridViewRowInfo rowInfo = (GridViewRowInfo)this; if (hierarchyDataProvider != null && this.ViewTemplate.AutoUpdateObjectRelationalSource) { rowInfo = hierarchyDataProvider.AddNewRow(this) ?? (GridViewRowInfo)this; this.ViewInfo.Refresh(); if (rowInfo != this) { if (!this.deferUserAddedRow) { GridViewRowEventArgs args3 = new GridViewRowEventArgs(rowInfo); this.ViewTemplate.EventDispatcher.RaiseEvent <GridViewRowEventArgs>(EventDispatcher.UserAddedRow, (object)this.ViewTemplate, args3); } else { this.addedRow = rowInfo; this.deferUserAddedRow = false; } if (this.moveToLastRow) { rowInfo.IsCurrent = true; this.moveToLastRow = false; } else { this.ViewTemplate.MasterTemplate.CurrentRow = (GridViewRowInfo)this.ViewInfo.TableAddNewRow; } } } else { GridViewRowEventArgs args3 = new GridViewRowEventArgs((GridViewRowInfo)this); this.ViewTemplate.EventDispatcher.RaiseEvent <GridViewRowEventArgs>(EventDispatcher.UserAddedRow, (object)this.ViewTemplate, args3); } GridViewSynchronizationService.DispatchEvent(this.ViewTemplate, new GridViewEvent((object)this.ViewTemplate, (object)this.ViewTemplate, new object[1] { (object)new DataViewChangedEventArgs(ViewChangedAction.Add, (object)this) }, new GridViewEventInfo(KnownEvents.ViewChanged, GridEventType.Both, GridEventDispatchMode.Send)), false); return(rowInfo); } int count = this.ViewTemplate.ListSource.Count; GridViewRowInfo rowInfo1 = this.boundRow; try { this.ViewTemplate.Rows.addingThroughUI = true; this.ViewTemplate.BeginUpdate(); IEditableObject editableObject = rowInfo1 != null ? rowInfo1.DataBoundItem as IEditableObject : (IEditableObject)null; if (rowInfo1 == null) { rowInfo1 = this.ViewTemplate.ListSource.AddNew(); editableObject = rowInfo1.DataBoundItem as IEditableObject; editableObject?.BeginEdit(); } else { this.boundRow.IsVisible = true; } rowInfo1.AddingNewDataRow = true; bool flag = false; for (int index = 0; index < this.ViewTemplate.Columns.Count; ++index) { GridViewColumn column = (GridViewColumn)this.ViewTemplate.Columns[index]; object obj = this[column]; if (obj == null) { GridViewCheckBoxColumn viewCheckBoxColumn = column as GridViewCheckBoxColumn; if (viewCheckBoxColumn != null && viewCheckBoxColumn.DataType.IsValueType) { object instance = Activator.CreateInstance(viewCheckBoxColumn.DataType); rowInfo1[column] = instance; } } else if (this.changedColumns.Contains((object)column)) { flag = true; rowInfo1[column] = obj; } } if (flag) { editableObject?.EndEdit(); this.ViewTemplate.EndUpdate(false); GridViewSynchronizationService.SuspendEvent(this.ViewTemplate, KnownEvents.CurrentChanged); ((ICancelAddNew)this.ViewTemplate.ListSource).EndNew(this.ViewTemplate.ListSource.Count - 1); GridViewSynchronizationService.ResumeEvent(this.ViewTemplate, KnownEvents.CurrentChanged); if (!this.deferUserAddedRow) { GridViewRowEventArgs args3 = new GridViewRowEventArgs(rowInfo1); this.ViewTemplate.EventDispatcher.RaiseEvent <GridViewRowEventArgs>(EventDispatcher.UserAddedRow, (object)this.ViewTemplate, args3); this.addedRow = (GridViewRowInfo)null; } else { this.addedRow = rowInfo1; } this.deferUserAddedRow = false; if (this.moveToLastRow) { rowInfo1.IsCurrent = true; this.moveToLastRow = false; } else { this.ViewTemplate.MasterTemplate.CurrentRow = (GridViewRowInfo)this.ViewInfo.TableAddNewRow; } } else { if (this.boundRow != null || this.ViewTemplate.ListSource.Count > count) { ((ICancelAddNew)this.ViewTemplate.ListSource).CancelNew(this.ViewTemplate.ListSource.Count - 1); } this.ViewTemplate.EndUpdate(false); } } catch (Exception ex) { if (this.boundRow != null || this.ViewTemplate.ListSource.Count > count) { ((ICancelAddNew)this.ViewTemplate.ListSource).CancelNew(this.ViewTemplate.ListSource.Count - 1); } this.ViewTemplate.EndUpdate(false); this.ViewTemplate.SetError(new GridViewCellCancelEventArgs((GridCellElement)null, (IInputEditor)null), ex); return((GridViewRowInfo)null); } finally { this.boundRow = (GridViewRowInfo)null; this.newRowInitialized = false; this.IsModified = false; this.ClearCache(); this.changedColumns.Clear(); this.InvalidateRow(); this.ViewTemplate.Rows.addingThroughUI = false; if (this.ViewTemplate != null && this.ViewTemplate.ListSource != null) { this.ViewTemplate.ListSource.CreateATransactionForEveryValueSetting = true; } if (rowInfo1 != null) { rowInfo1.AddingNewDataRow = false; } if (this.ViewInfo.ParentRow != null && this.ViewInfo.SummaryRows.Count > 0) { ++this.ViewInfo.summaryValueVersion; this.ViewTemplate.MasterTemplate.SynchronizationService.DispatchEvent(new GridViewEvent((object)this.ViewTemplate, (object)this, new object[1] { (object)new DataViewChangedEventArgs(ViewChangedAction.DataChanged, (IList)null) }, new GridViewEventInfo(KnownEvents.ViewChanged, GridEventType.Both, GridEventDispatchMode.Send))); } } return(rowInfo1); }