GridControlColumnCollection.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections;
  4. using System.Text;
  5. using FastReport.Utils;
  6. namespace FastReport.Dialog
  7. {
  8. /// <summary>
  9. /// Represents the collection of <b>GridControl</b> columns.
  10. /// </summary>
  11. public class GridControlColumnCollection : FRCollectionBase, IFRSerializable
  12. {
  13. /// <summary>
  14. /// Gets or sets a column.
  15. /// </summary>
  16. /// <param name="index">The index of a column in this collection.</param>
  17. /// <returns>The column with specified index.</returns>
  18. public GridControlColumn this[int index]
  19. {
  20. get { return List[index] as GridControlColumn; }
  21. set { List[index] = value; }
  22. }
  23. /// <inheritdoc/>
  24. protected override void OnInsert(int index, Object value)
  25. {
  26. base.OnInsert(index, value);
  27. if (Owner != null)
  28. {
  29. GridControlColumn column = value as GridControlColumn;
  30. (Owner as GridControl).DataGridView.Columns.Insert(index, column.Column);
  31. }
  32. }
  33. /// <inheritdoc/>
  34. protected override void OnRemove(int index, object value)
  35. {
  36. base.OnRemove(index, value);
  37. if (Owner != null)
  38. {
  39. GridControlColumn column = value as GridControlColumn;
  40. (Owner as GridControl).DataGridView.Columns.Remove(column.Column);
  41. }
  42. }
  43. /// <summary>
  44. /// Serializes the collection.
  45. /// </summary>
  46. /// <param name="writer">Writer object.</param>
  47. /// <remarks>
  48. /// This method is for internal use only.
  49. /// </remarks>
  50. public void Serialize(FRWriter writer)
  51. {
  52. writer.ItemName = "Columns";
  53. foreach (GridControlColumn c in this)
  54. {
  55. writer.Write(c);
  56. }
  57. }
  58. /// <summary>
  59. /// Deserializes the collection.
  60. /// </summary>
  61. /// <param name="reader">Reader object.</param>
  62. /// <remarks>
  63. /// This method is for internal use only.
  64. /// </remarks>
  65. public void Deserialize(FRReader reader)
  66. {
  67. Clear();
  68. while (reader.NextItem())
  69. {
  70. GridControlColumn c = new GridControlColumn();
  71. reader.Read(c);
  72. Add(c);
  73. }
  74. }
  75. /// <summary>
  76. /// Initializes a new instance of the <see cref="GridControlColumnCollection"/> class with default settings.
  77. /// </summary>
  78. public GridControlColumnCollection() : this(null)
  79. {
  80. }
  81. /// <summary>
  82. /// Initializes a new instance of the <see cref="GridControlColumnCollection"/> class with default settings.
  83. /// </summary>
  84. /// <param name="owner">The owner of this collection.</param>
  85. public GridControlColumnCollection(GridControl owner) : base(owner)
  86. {
  87. }
  88. }
  89. }