/// <summary> /// Sets the editor parameters. /// </summary> /// <param name="editorDataContext">The editor data context.</param> /// <param name="editTemplate">The edit template.</param> /// <param name="viewTemplate">The view template.</param> protected void SetEditorParams(ICellDataContextObject editorDataContext, DataTemplate editTemplate, DataTemplate viewTemplate) { CellEditTemplate = editTemplate; if (editorDataContext != null) CellEditorDataContext = editorDataContext; if (viewTemplate != null) CellViewTemplate = viewTemplate; else if (!this.Equals(CellEditorDataContext)) CellViewTemplate = CellDataTemplates.GetTemplateByName("Spreadsheet_ViewIsAbsentTemplate"); }
/// <summary> /// Handles the <see cref="E:ParentCellPropertyChanged" /> event. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="PropertyChangedEventArgs"/> instance containing the event data.</param> private void OnParentCellPropertyChanged(object sender, PropertyChangedEventArgs args) { var cell = sender as CellBase; if (cell == null) return; if (args.PropertyName == "CellEditorDataContext") _editorDataContext = cell.CellEditorDataContext; if (args.PropertyName == "CellEditTemplate") _editTemplate = cell.CellEditTemplate; if (args.PropertyName == "CellViewTemplate") _viewTemplate = cell.CellViewTemplate; SetEditorParams(_editorDataContext, _editTemplate, _viewTemplate); }
/// <summary> /// Disposes this instance. /// </summary> internal virtual void Dispose() { _disposed = true; _cellEditTemplate = null; _cellViewTemplate = null; _cellEditorDataContext = null; }
/// <summary> /// Disposes this instance. /// </summary> internal override void Dispose() { base.Dispose(); _editTemplate = null; _viewTemplate = null; _editorDataContext = null; if (_parentCell != null) { _parentCell.PropertyChanged -= OnParentCellPropertyChanged; _parentCell = null; } }