internal void OnBeginningEdit(DataGridItemCancelEventArgs e) { if (this.BeginningEdit != null) { this.BeginningEdit(this, e); } }
internal void OnCommittingEdit(DataGridItemCancelEventArgs e) { if (this.CommittingEdit != null) { this.CommittingEdit(this, e); } }
/// <summary> /// React on begin edit item. /// </summary> public void BeginEditItem(DataGridItemCancelEventArgs e) { if (!e.Cancel) { _geocodablePage.OnBeginningEdit(e); _statusBuilder.FillEditingStatus(e.Item.ToString(), (string)App.Current.FindResource("Order"), _parentPage); } }
internal override void OnBeginningEdit(DataGridItemCancelEventArgs e) { object item = e.Item; // We throw instead of setting e.Cancel to True because we do not want to give the developer the chance to set it back to False. if (item is EmptyDataItem) { throw new DataGridException("Cannot begin edit on an empty data item or on an item that has a pending commit async operation."); } DataGridPageManagerBase pageManager = this.RootGroup.GetVirtualPageManager(); if (pageManager.IsAsyncCommitQueuedForItem(item)) { throw new DataGridException("Cannot begin edit on an empty data item or on an item that has a pending commit async operation."); } base.OnBeginningEdit(e); }
/// <summary> /// Beggining edit. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Ignored.</param> private void _DataGridCollectionViewSourceBeginningEdit(object sender, DataGridItemCancelEventArgs e) { e.Handled = true; // If not canceled - raise EditBegun event and update editing status. IsEditingInProgress = true; _SetEditingStatus(e.Item.ToString()); }
public virtual void EditItem( object item ) { if( item == null ) throw new ArgumentNullException( "item" ); this.CommitNew(); if( m_currentEditItem == item ) return; this.CommitEdit(); DataGridItemCancelEventArgs itemCancelEventArgs = new DataGridItemCancelEventArgs( this, item, false ); m_rootDataGridCollectionViewBase.OnBeginningEdit( itemCancelEventArgs ); if( itemCancelEventArgs.Cancel ) throw new DataGridException( "EditItem was canceled." ); this.ItemEditionIsManuallyHandled = itemCancelEventArgs.Handled; if( !this.ItemEditionIsManuallyHandled ) { bool beginEditCalled; this.EditItemInternal( item, out beginEditCalled ); if( !beginEditCalled ) { DataGridItemPropertyCollection itemProperties = this.ItemProperties; int count = itemProperties.Count; m_oldValuesBeforeEdition = new object[ count ]; for( int i = 0; i < count; i++ ) { m_oldValuesBeforeEdition[ i ] = itemProperties[ i ].GetValue( item ); } } } m_currentEditItem = item; DataGridItemEventArgs itemEventArgs = new DataGridItemEventArgs( this, item ); m_rootDataGridCollectionViewBase.OnEditBegun( itemEventArgs ); }
internal virtual void OnBeginningEdit( DataGridItemCancelEventArgs e ) { // We throw instead of setting e.Cancel to True because we do not want to give the developer the chance to set it back to False. if( e.Item is EmptyDataItem ) throw new DataGridException( "Cannot begin edit on an empty data item." ); if( this.BeginningEdit != null ) this.BeginningEdit( this, e ); if( m_parentCollectionViewSourceBase != null ) m_parentCollectionViewSourceBase.OnBeginningEdit( e ); }
/// <summary> /// Handler commits editing (calls CommitItem method of appropriate ContextHandler). /// </summary> /// <param name="sender">Data grid control sender.</param> /// <param name="e">Item event args.</param> private void _DataGridCollectionViewSourceCommittingEdit(object sender, DataGridItemCancelEventArgs e) { DataObjectCanceledEventArgs args = new DataObjectCanceledEventArgs((AppData.DataObject)e.Item); if (CommittingEdit != null) CommittingEdit(this, args); e.Handled = true; if (!args.Cancel) { _regionsPage.OnCommittingEdit(e); App.Current.Project.Save(); _SetSelectionStatus(((ICollection<Barrier>)e.CollectionView.SourceCollection).Count); IsEditingInProgress = false; } else e.Cancel = true; }
/// <summary> /// Occurs when user press "Enter" on edited grid row. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { try { if (_isEditeStart && !string.IsNullOrEmpty(_selectedProfileName)) { ReportInfo editedInfo = App.Current.ReportGenerator.GetReportInfo(_selectedProfileName); if (null != editedInfo) { Debug.Assert(!editedInfo.IsPredefined); ReportDataWrapper selectedItem = xceedGridReports.CurrentItem as ReportDataWrapper; string templatePath = ReportsGenerator.GetNewTemplatePath(selectedItem.Name, editedInfo.TemplatePath); string fileSrcName = ReportsGenerator.GetTemplateAbsolutelyPath(editedInfo.TemplatePath); string fileDestName = ReportsGenerator.GetTemplateAbsolutelyPath(templatePath); File.Move(fileSrcName, fileDestName); _selectedProfileName = editedInfo.Name = selectedItem.Name; ReportDataWrapper.StartTemplatePath = templatePath; ReportDataWrapper.StartTemplateName = _selectedProfileName; editedInfo.TemplatePath = templatePath; } } } catch (Exception ex) { Logger.Error(ex); App.Current.Messenger.AddError(ex.Message); } _isEditeStart = false; e.Handled = true; }
/// <summary> /// React on committing edit. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Event args.</param> private void _CommittingEdit(object sender, DataGridItemCancelEventArgs e) { _geocodablePage.OnCommittingEdit(e, !_skipStartGeocoding); e.Handled = true; CurrentItem.Address.PropertyChanged -= new PropertyChangedEventHandler(_AddressPropertyChanged); CurrentItem.PropertyChanged -= new PropertyChangedEventHandler(_CurrentItemPropertyChanged); }
/// <summary> /// React on DataGridCollectionViewSource CommittingEdit. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Data grid item cancel event arguments </param> private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { try { var selectedItem = xceedGrid.CurrentItem as RestrictionDataWrapper; IVrpSolver solver = App.Current.Solver; SolverSettings solverSettings = solver.SolverSettings; NetworkDescription networkDescription = solver.NetworkDescription; ICollection<NetworkAttribute> networkAttributes = networkDescription.NetworkAttributes; foreach (NetworkAttribute attribute in networkAttributes) { if (selectedItem.Restriction.Name.Equals(attribute.Name, StringComparison.OrdinalIgnoreCase)) { ICollection<NetworkAttributeParameter> paramColl = attribute.Parameters; Debug.Assert(null != paramColl); _UpdateValue(selectedItem, solverSettings, attribute); } } } catch (Exception ex) { Logger.Error(ex); } e.Handled = true; }
/// <summary> /// Occurs when user press "enter" on edited grid row. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { App.Current.MainWindow.StatusBar.SetStatus(this, null); Row parentRow = (Row)XceedGrid.GetContainerFromItem(e.Item); parentRow.Cells[IS_CURRENT_COLUMN_CAPTION].IsEnabled = true; ProjectDataWrapper editedItem = e.Item as ProjectDataWrapper; _EditProject(editedItem); e.Handled = true; }
/// <summary> /// React on commiting edit. /// </summary> /// <param name="args">Commiting event args.</param> /// <param name="canStartGeocoding">Flag for accepting geocoding start.</param> public void OnCommittingEdit(DataGridItemCancelEventArgs args, bool canStartGeocoding) { Debug.Assert(args != null); _canceledByGrid = true; IGeocodable geocodable = (IGeocodable)args.Item; if (geocodable != _currentItem) { args.Cancel = true; } if (_isAddressChanged && canStartGeocoding) { _StartGeocoding(_currentItem, true); if (!IsGeocodingInProcess) { _currentItem.Address.PropertyChanged -= new PropertyChangedEventHandler(_AddressPropertyChanged); } } EditEnded(false); _canceledByGrid = false; if (!IsGeocodingInProcess) { _currentItem = null; } }
/// <summary> /// React on beginning edit. /// </summary> /// <param name="args">Beginning edit args.</param> public void OnBeginningEdit(DataGridItemCancelEventArgs args) { Debug.Assert(args != null); // if geocoding in process and try to edit not geocoding geocodable object - than cancel it IGeocodable current = (IGeocodable)args.Item; // in case of deleting edited - cancel beginning edit if ((IsGeocodingInProcess && current != _currentItem)) { args.Cancel = true; } else { _currentItem = args.Item as IGeocodable; _currentItem.Address.PropertyChanged += new PropertyChangedEventHandler(_AddressPropertyChanged); _editStartedByGrid = true; _StartEdit(_currentItem); _editStartedByGrid = false; } }
private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { e.Handled = true; if (SymbologyManager.SymbologyType == SymbologyType.QuantitySymbology) _Validate((OrderQuantity)e.Item); _EndEdit(); }
private void DataGridCollectionViewSource_BeginningEdit(object sender, DataGridItemCancelEventArgs e) { _StartEdit((SymbologyRecord)e.Item); e.Handled = true; if (SymbologyManager.SymbologyType == SymbologyType.CategorySymbology) { if (((OrderCategory)e.Item).DefaultValue) CategoryXceedGrid.Columns[VALUE_COLUMN_INDEX].ReadOnly = true; } else { if (((OrderQuantity)e.Item).DefaultValue) { QuantityXceedGrid.Columns[MINVALUE_COLUMN_INDEX].ReadOnly = true; QuantityXceedGrid.Columns[MAXVALUE_COLUMN_INDEX].ReadOnly = true; } } }
/// <summary> /// Need to close current popup and open popup if current item has invalid property. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">DataGridItemCancelEventArgs.</param> private void _CollectionViewSourceBeginningEdit(object sender, DataGridItemCancelEventArgs e) { // Do not show callout, when pointing on invalid cell. _StopTimer(); // If callout pointing at another item - close it. if (_InvalidItem != e.Item && _Callout.IsOpen) { _ClosePopup(true); _callout = new Callout(); } // Remember edited item and subscribe to it's property changed event. _InvalidItem = e.Item as IDataErrorInfo; (e.Item as INotifyPropertyChanged).PropertyChanged += new PropertyChangedEventHandler (_EditedItemPropertyChanged); // If current column have error. if (_dataGrid.CurrentColumn != null && !string.IsNullOrEmpty((e.Item as IDataErrorInfo)[_dataGrid.CurrentColumn.FieldName])) { // If callout is pointing at another column - close it. if (_column != _dataGrid.CurrentColumn) { _ClosePopup(true); _callout = new Callout(); } // If callout closed - open it and point at current cell. if (!_Callout.IsOpen) { // Detect column to show callout. var column = _dataGrid.CurrentColumn; if (Address.IsAddressPropertyName(column.FieldName)) column = _GetFirstAddressColumn(); _InitCallout(column); } } // If callout closed - seek for item's invalid properties. else if (!_Callout.IsOpen && !string.IsNullOrEmpty(_InvalidItem.Error)) _ShowCalloutOnInvalidItem(e.Item as IDataErrorInfo); // Subscribe to cell property changed events. Doing so we will know when user change active cell. DataRow row = _dataGrid.GetContainerFromItem(e.Item) as DataRow; // If grid view is table flow - even in editing state row can be null. if (row != null) foreach (var cell in row.Cells) cell.PropertyChanged += new PropertyChangedEventHandler(_CellPropertyChanged); }
/// <summary> /// React on DataGridCollectionViewSource BeginningEdit. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Data grid item cancel event arguments </param> private void DataGridCollectionViewSource_BeginningEdit(object sender, DataGridItemCancelEventArgs e) { e.Handled = true; }
internal void OnBeginningEdit( DataGridItemCancelEventArgs e ) { if( this.BeginningEdit != null ) this.BeginningEdit( this, e ); }
/// <summary> /// React on beginning edit. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Event args.</param> private void _BeginningEdit(object sender, DataGridItemCancelEventArgs e) { // If location has no or whitespace name - get new name for it // and turn on validation on address fields. Location location = e.Item as Location; if (string.IsNullOrWhiteSpace(location.Name)) { location.Name = DataObjectNamesConstructor.GetNameForNewDataObject( _locations, location, true); } (e.Item as Location).IsAddressValidationEnabled = true; _geocodablePage.OnBeginningEdit(e); e.Handled = true; CurrentItem.Address.PropertyChanged += new PropertyChangedEventHandler(_AddressPropertyChanged); CurrentItem.PropertyChanged += new PropertyChangedEventHandler(_CurrentItemPropertyChanged); }
internal void OnCommittingEdit( DataGridItemCancelEventArgs e ) { if( this.CommittingEdit != null ) this.CommittingEdit( this, e ); }
/// <summary> /// Occurs when user press start edit name. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataGridCollectionViewSource_BeginningEdit(object sender, DataGridItemCancelEventArgs e) { ReportDataWrapper selectedItem = xceedGridReports.CurrentItem as ReportDataWrapper; if (null != selectedItem) { ReportInfo info = App.Current.ReportGenerator.GetReportInfo(selectedItem.Name); if (null != info) { if (!info.IsPredefined) { buttonDeleteTemplate.IsEnabled = buttonEditTemplate.IsEnabled = buttonDuplicateTemplate.IsEnabled = false; _isEditeStart = true; } } } e.Handled = true; }
private void DataGridCollectionViewSource_BeginningEdit(object sender, DataGridItemCancelEventArgs e) { DataObjectCanceledEventArgs args = new DataObjectCanceledEventArgs((ESRI.ArcLogistics.Data.DataObject)e.Item); if (BeginningEdit != null) BeginningEdit(this, args); e.Handled = true; if (!args.Cancel) { _regionsPage.OnBeginningEdit(e); IsEditingInProgress = true; _SetEditingStatus(e.Item.ToString()); } else e.Cancel = true; }
/// <summary> /// React on commit item. /// </summary> public void CommitItem(DataGridItemCancelEventArgs e) { if (!e.Cancel) { _geocodablePage.OnCommittingEdit(e, true); Project project = App.Current.Project; if (project != null) project.Save(); DataGridControlEx dataGrid = _parentPage.OrdersView.OrdersGrid; if (dataGrid.SelectedItems == null) { string status = string.Format((string)App.Current.FindResource(OptimizeAndEditPage.NoSelectionStatusFormat), _currentSchedule.Routes.Count, _currentSchedule.UnassignedOrders.Count); App.Current.MainWindow.StatusBar.SetStatus(_parentPage, status); return; } _statusBuilder.FillSelectionStatus(e.CollectionView.Count, (string)App.Current.FindResource("Order"), dataGrid.SelectedItems.Count, _parentPage); } }
/// <summary> /// Edit commited. /// </summary> /// <param name="sender">Ignored.</param> /// <param name="e">Ignored.</param> private void _DataGridCollectionViewSourceCommittingEdit(object sender, DataGridItemCancelEventArgs e) { e.Handled = true; // Break changed, need to sort breaks. _InitDataGridCollection(); if (!e.Cancel) { // If not canceled - saving project. if (App.Current.Project != null) App.Current.Project.Save(); // Update status label. IsEditingInProgress = false; _SetSelectionStatus(); } else e.Cancel = true; }
private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { if (CommonHelpers.IgnoreVirtualLocations(e.Item)) { var args = new DataObjectCanceledEventArgs((ESRI.ArcLogistics.Data.DataObject)e.Item); if (CommittingEdit != null) CommittingEdit(this, args); e.Handled = true; if (args.Cancel) e.Cancel = true; else { var project = App.Current.Project; if (project != null) project.Save(); _SetSelectionStatus(); IsEditingInProgress = false; } } else { e.Handled = true; e.Cancel = true; } }
internal override void OnBeginningEdit( DataGridItemCancelEventArgs e ) { object item = e.Item; // We throw instead of setting e.Cancel to True because we do not want to give the developer the chance to set it back to False. if( item is EmptyDataItem ) throw new DataGridException( "Cannot begin edit on an empty data item or on an item that has a pending commit async operation." ); DataGridPageManagerBase pageManager = this.RootGroup.GetVirtualPageManager(); if( pageManager.IsAsyncCommitQueuedForItem( item ) ) throw new DataGridException( "Cannot begin edit on an empty data item or on an item that has a pending commit async operation." ); base.OnBeginningEdit( e ); }
private void DataGridCollectionViewSource_CommittingEdit(object sender, DataGridItemCancelEventArgs e) { DataObjectCanceledEventArgs args = new DataObjectCanceledEventArgs((ESRI.ArcLogistics.Data.DataObject)e.Item); if (CommittingEdit != null) CommittingEdit(this, args); e.Handled = true; if (!args.Cancel) { _regionsPage.OnCommittingEdit(e); if (App.Current.Project != null) App.Current.Project.Save(); _SetSelectionStatus(); IsEditingInProgress = false; } else e.Cancel = true; }
/// <summary> /// Handler begins edit item (calls BeginEditItem method of appropriate ContextHandler). /// </summary> /// <param name="sender">Data grid control sender.</param> /// <param name="e">Item event args.</param> private void _DataGridCollectionViewSourceBeginningEdit(object sender, DataGridItemCancelEventArgs e) { e.Handled = true; if (e.Item is AppData.DataObject) { // Define event args from editinf Item. var args = _CreateDataObjectCanceledEventArgs(e.Item); // Raise BeginningEdit event. if (BeginningEdit != null) BeginningEdit(this, args); // Add handler to PropertyChanged event - need to support editing bool fields // by single click and save changes. ((INotifyPropertyChanged)e.Item).PropertyChanged += new PropertyChangedEventHandler(_RoutesGridObjectPropertyChanged); if (!args.Cancel) _handler.BeginEditItem(e); // If action wasn't cancelled - begin editing // in appropriate handler. else e.Cancel = true; } }
internal void OnCommittingEdit( DataGridItemCancelEventArgs e ) { if( this.CommittingEdit != null ) this.CommittingEdit( this, e ); if( m_parentCollectionViewSourceBase != null ) m_parentCollectionViewSourceBase.OnCommittingEdit( e ); }
/// <summary> /// Handler commits editing (calls CommitItem method of appropriate ContextHandler). /// </summary> /// <param name="sender">Data grid control sender.</param> /// <param name="e">Item event args.</param> private void _DataGridCollectionViewSourceCommittingEdit(object sender, DataGridItemCancelEventArgs e) { if (CommonHelpers.IgnoreVirtualLocations(e.Item)) { // Remove handler to PropertyChanged (was added before for support // editing bool fields by single click and save changes). ((INotifyPropertyChanged)e.Item).PropertyChanged -= _RoutesGridObjectPropertyChanged; // Define event args from commited object. var args = _CreateDataObjectCanceledEventArgs(e.Item); // Raise commiting edit event. if (CommittingEdit != null) CommittingEdit(this, args); e.Handled = true; if (!args.Cancel) // If action was not cancelled - commit changes. { _handler.CommitItem(e); App.Current.Project.Save(); } else e.Cancel = true; } else { e.Handled = true; e.Cancel = true; } }
public virtual void CommitEdit() { if( m_currentEditItem == null ) return; DataGridItemCancelEventArgs itemCancelEventArgs = new DataGridItemCancelEventArgs( this, m_currentEditItem, false ); m_rootDataGridCollectionViewBase.OnCommittingEdit( itemCancelEventArgs ); if( itemCancelEventArgs.Cancel ) throw new DataGridException( "CommitEdit was canceled." ); if( itemCancelEventArgs.Handled != this.ItemEditionIsManuallyHandled ) throw new InvalidOperationException( "When manually handling the item-edition process the BeginningEdit, CommittingEdit, and CancelingEdit events must all be handled." ); if( !itemCancelEventArgs.Handled ) { bool endEditCalled; this.EndEditInternal( m_currentEditItem, out endEditCalled ); m_oldValuesBeforeEdition = null; } DataGridItemEventArgs itemEventArgs = new DataGridItemEventArgs( this, m_currentEditItem ); int index = this.IndexOfSourceItem( m_currentEditItem ); Debug.Assert( index != -1 ); object[] items = new object[] { m_currentEditItem }; m_currentEditItem = null; // Only execute or queue a replace operation if the item is not already queued for a remove operation. if( !this.DeferredOperationManager.ContainsItemForRemoveOperation( items[ 0 ] ) ) { this.ExecuteOrQueueSourceItemOperation( new DeferredOperation( DeferredOperation.DeferredOperationAction.Replace, -1, index, items, index, items ) ); } m_rootDataGridCollectionViewBase.OnEditCommitted( itemEventArgs ); }
/// <summary> /// React on commit item. /// </summary> public void CommitItem(DataGridItemCancelEventArgs e) { _mapControl.EditEnded(); e.Handled = true; }