private void OnDataConversionError(DataGridDataErrorEventArgs dataError) { EventHandler <DataGridDataErrorEventArgs> handler = this.DataConversionError; if (handler != null) { handler(this, dataError); } }
private void DataGridValueConverter_DataConversionError(object sender, DataGridDataErrorEventArgs dataError) { Debug.Assert(dataError != null); Debug.Assert(sender is DataGridValueConverter); if (this.OwningGrid != null) { this.OwningGrid.OnDataConversionError(dataError); } }
private void OnDataConversionError(DataGridDataErrorEventArgs dataError) { EventHandler<DataGridDataErrorEventArgs> handler = this.DataConversionError; if (handler != null) { handler(this, dataError); } }
private DataGridDataErrorEventArgs CommitRowEdit(bool exitEditingMode) { if (this._editingRow == null) { return null; } Debug.Assert(this.EditingRowIndex >= -1); Debug.Assert(this.EditingRowIndex < this._rowCount); DataGridDataErrorEventArgs dataError = null; DataGridRowCancelEventArgs e = new DataGridRowCancelEventArgs(this._editingRow); OnCommittingRowEdit(e); if (e.Cancel) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); dataError.Cancel = true; return dataError; } try { if (!this.DataConnection.EndEdit(this._editingRow.DataContext)) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); return dataError; } if (!exitEditingMode && !this.DataConnection.BeginEdit(this._editingRow.DataContext)) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); return dataError; } } catch (Exception ex) { dataError = new DataGridDataErrorEventArgs(ex, this.CurrentColumn, this._editingRow); OnDataError(dataError); return dataError; } return null; }
private DataGridDataErrorEventArgs CommitCellEditPrivate() { if (this._editingColumnIndex == -1) { return null; } Debug.Assert(this._editingColumnIndex >= 0); Debug.Assert(this._editingColumnIndex < this.ColumnsItemsInternal.Count); Debug.Assert(this._editingRow != null); DataGridDataErrorEventArgs dataError = null; DataGridColumnBase dataGridColumn = this.ColumnsItemsInternal[this._editingColumnIndex]; FrameworkElement element = this._editingRow.Cells[this._editingColumnIndex].Content as FrameworkElement; DataGridCellCancelEventArgs e = new DataGridCellCancelEventArgs(dataGridColumn, this._editingRow, element); OnCommittingCellEdit(e); if (e.Cancel) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); dataError.Cancel = true; return dataError; } // Write the new cell value into the backend for non-bound cells. DataGridBoundColumnBase dataGridBoundColumn = dataGridColumn as DataGridBoundColumnBase; try { if (dataGridBoundColumn == null) { // OnCommitCellEdit(new DataGridCellEventArgs(dataGridColumn, this._editingRow, element)); } } catch (Exception ex) { dataError = new DataGridDataErrorEventArgs(ex, this.CurrentColumn, this._editingRow); OnDataError(dataError); return dataError; } return null; }
private DataGridDataErrorEventArgs CancelRowEdit(bool exitEditingMode) { if (this._editingRow == null) { return null; } Debug.Assert(this.EditingRowIndex >= -1); Debug.Assert(this.EditingRowIndex < this._rowCount); DataGridDataErrorEventArgs dataError = null; try { object dataItem = this._editingRow.DataContext; if (!this.DataConnection.CancelEdit(dataItem)) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); return dataError; } // foreach (DataGridColumnBase dataGridColumn in this.Columns) { if (!exitEditingMode && dataGridColumn.Index == this._editingColumnIndex && dataGridColumn is DataGridBoundColumnBase) { continue; } PopulateCellContent(true /*forceTemplating*/, !exitEditingMode && dataGridColumn.Index == this._editingColumnIndex /*isCellEdited*/, dataGridColumn, this._editingRow, this._editingRow.Cells[dataGridColumn.Index]); } if (!exitEditingMode && !this.DataConnection.BeginEdit(dataItem)) { dataError = new DataGridDataErrorEventArgs(null, this.CurrentColumn, this._editingRow); return dataError; } } catch (Exception ex) { dataError = new DataGridDataErrorEventArgs(ex, this.CurrentColumn, this._editingRow); OnDataError(dataError); return dataError; } return null; }
private DataGridDataErrorEventArgs CancelCellEdit(bool exitEditingMode) { if (this._editingColumnIndex == -1) { return null; } Debug.Assert(this._editingColumnIndex >= 0); Debug.Assert(this._editingColumnIndex < this.ColumnsItemsInternal.Count); Debug.Assert(this._editingRow != null); DataGridDataErrorEventArgs dataError = null; DataGridColumnBase dataGridColumn = this.ColumnsItemsInternal[this._editingColumnIndex]; DataGridCell dataGridCell = this._editingRow.Cells[this._editingColumnIndex]; // Write the old cell value back into the cell content. DataGridBoundColumnBase dataGridBoundColumn = dataGridColumn as DataGridBoundColumnBase; try { if (dataGridBoundColumn != null) { dataGridBoundColumn.CancelCellEdit(this._uneditedValue); } else { DataGridTemplateColumn dataGridTemplateColumn = dataGridColumn as DataGridTemplateColumn; if (dataGridTemplateColumn != null) { PopulateCellContent(true /*forceTemplating*/, !exitEditingMode /*isCellEdited*/, dataGridTemplateColumn, this._editingRow, dataGridCell); } } } catch (Exception ex) { dataError = new DataGridDataErrorEventArgs(ex, this.CurrentColumn, this._editingRow); OnDataError(dataError); return dataError; } return null; }
private bool BeginRowEdit(DataGridRow dataGridRow) { // Debug.Assert(this._editingRow == null); Debug.Assert(dataGridRow != null); Debug.Assert(this.CurrentRowIndex >= -1); Debug.Assert(this.CurrentRowIndex < this._rowCount); // try { if (this.DataConnection.BeginEdit(dataGridRow.DataContext)) { this._editingRow = dataGridRow; if (this.AreRowHeadersVisible) { this._editingRow.HeaderCell.ApplyRowStatus(true /*animate*/); } this._editingRow.ApplyBackgroundBrush(true /*animate*/); // return true; } // return false; } catch (Exception ex) { DataGridDataErrorEventArgs dataError = new DataGridDataErrorEventArgs(ex, this.CurrentColumn, this._editingRow); OnDataError(dataError); if (dataError.ThrowException) { throw dataError.Exception; } } // return false; }
// /// <summary> /// A cell value parsing or formatting failed /// </summary> internal void OnDataConversionError(DataGridDataErrorEventArgs dataError) { Debug.Assert(dataError != null); Debug.Assert(dataError.Exception != null); Debug.Assert(dataError.Column != null); if (dataError.Column.OwningGrid == this && (dataError.Row == null || dataError.Row.OwningGrid == this)) { OnDataError(dataError); if (dataError.ThrowException) { throw dataError.Exception; } } }
/// <summary> /// Raises the DataError event. /// </summary> protected virtual void OnDataError(DataGridDataErrorEventArgs e) { EventHandler<DataGridDataErrorEventArgs> handler = this.DataError; if (handler != null) { handler(this, e); } }