GrapeCity.Win.MultiRow Namespace > Cell Class : Clone Method |
This method does not copy the Name property of this Cell. The Name property is a unique identification of a Cell in a Template; therefore, it is not cloned.
Override the Clone method whenever you derive from the Cell class and add new properties to the derived class.
Notes to Inheritors:
When overriding the Clone method in a derived class, call the base class's Clone method so that the properties of the base class are copied to the new cell, and be sure to also copy the values of any properties that were added to the derived class.
public class ListBoxCell : Cell { public override Type EditType { get { return typeof(ListBoxEditingControl); } } List<string> _items = new List<string>(); public List<string> Items { get { return _items; } } protected override void InitializeEditingControl(int rowIndex, object formattedValue, CellStyle style) { // Apply the cell settings to editing control. base.InitializeEditingControl(rowIndex, formattedValue, style); ListBoxEditingControl listBoxEditingControl = this.GcMultiRow.EditingControl as ListBoxEditingControl; for (int i = 0; i < this._items.Count; i++) { listBoxEditingControl.Items.Add(this._items[i]); } listBoxEditingControl.FormattedValue = formattedValue; } protected override void TerminateEditingControl(int rowIndex) { ListBoxEditingControl listBoxEditingControl = this.GcMultiRow.EditingControl as ListBoxEditingControl; // For performance reasons, MultiRow uses the same instance for all cells. // When leaving edit mode, clear items to prepare editing control for use next time. listBoxEditingControl.Items.Clear(); base.TerminateEditingControl(rowIndex); } public override object Clone() { // When you derive from Cell and add new properties to the derived class, be sure to // override the Clone method to copy the new properties during cloning operations. // You should also call the base class's Clone method so that the properties of the // base class are copied to the new cell. ListBoxCell listBoxCell = base.Clone() as ListBoxCell; listBoxCell.Items.AddRange(this.Items); return listBoxCell; } }
Public Class ListBoxCell Inherits Cell Public Overloads Overrides ReadOnly Property EditType() As Type Get Return GetType(ListBoxEditingControl) End Get End Property Private _items As New List(Of String)() Public ReadOnly Property Items() As List(Of String) Get Return _items End Get End Property Protected Overloads Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, ByVal formattedValue As Object, ByVal style As CellStyle) ' Apply the cell settings to editing control. MyBase.InitializeEditingControl(rowIndex, formattedValue, style) Dim listBoxEditingControl As ListBoxEditingControl = TryCast(Me.GcMultiRow.EditingControl, ListBoxEditingControl) For i As Integer = 0 To Me._items.Count - 1 listBoxEditingControl.Items.Add(Me._items(i)) Next listBoxEditingControl.FormattedValue = formattedValue End Sub Protected Overloads Overrides Sub TerminateEditingControl(ByVal rowIndex As Integer) Dim listBoxEditingControl As ListBoxEditingControl = TryCast(Me.GcMultiRow.EditingControl, ListBoxEditingControl) ' For performance reasons, MultiRow uses the same instance for all cells. ' When leaving edit mode, clear items to prepare the editing control for use next time. listBoxEditingControl.Items.Clear() MyBase.TerminateEditingControl(rowIndex) End Sub Public Overloads Overrides Function Clone() As Object ' When you derive from Cell and add new properties to the derived class, be sure to ' override the Clone method to copy the new properties during cloning operations. ' You should also call the base class's Clone method so that the properties of the ' base class are copied to the new cell. Dim listBoxCell As ListBoxCell = TryCast(MyBase.Clone(), ListBoxCell) listBoxCell.Items.AddRange(Me.Items) Return listBoxCell End Function End Class
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2