I have problem with my custom control collection property on Compact Framework - no correct code generated in InitializeComponent(). As a result I can open CollectionEditor, can insert new items, can assign property values in design-time, but this items and its properties don't saved when project reopened. I found some mistake in InitializeControl() autogenerated code - may be it's a result of my collection class realization errors.
Please, help me.
This is my code:
//simple item class
public class GridColumnItem
{
//fields, properties & etc...
}
// collection class
public class GridColumns : System.Collections.CollectionBase
{
public GridColumns()
{
}
public void Add(GridColumnItem item)
{
if (List.IndexOf(item) == -1)
List.Add(item);
}
public void AddRange(GridColumnItem[ items)
{
foreach (GridColumnItem clm in items)
List.Add(clm);
}
public int IndexOf(GridColumnItem item)
{
return List.IndexOf(item);
}
public void Insert(int index, GridColumnItem item)
{
List.Insert(index, item);
}
public void Remove(GridColumnItem item)
{
List.Remove(item);
}
public bool Contains(GridColumnItem item)
{
return List.Contains(item);
}
public ArrayList Items()
{
return this.InnerList;
}
public GridColumnItem this[int index]
{
get { return (GridColumnItem)List[index];}
set { List[index] = value;}
}
}
// collaction usage
public partial class EnhGrid : DataGrid
{
private GridColumns columns = null;
public GridColumns Columns
{
get {
if (columns == null)
columns = new GridColumns();
return columns;
}
set {
if (columns == null)
columns = new GridColumns();
columns.AddRange((GridColumnItem[)value.Items().ToArray(typeof(GridColumnItem)));
}
}
All GridColumnItem items initilalization are generated in x.designer.cs module, but property EnhGrid.Columns does not initialized. New instance of GridColumns does not assigned to Columns property:
new GridColumns().AddRange(new GridColumnItem[ {...}); //No any assignments...
But I expected the next:
Grid1.Columns.AddRange(new GridColumnItem[ {...});
All works good if I corrent this line manualy, but after source modifications this line generated again....
Will be very grateful for any help.
Best regards, Sergey.