Property is getting set to null after I set it to something?
<p>I've got a custom control and one of the properties is:</p>

<pre><code>public List&lt;SelectionBox&gt; Boxes { get; set; }
</code></pre>

<p>In the control constructor I have:</p>

<pre><code>this.Boxes = new List&lt;SelectionBox&gt;();
this.Boxes.Add(new SelectionBox("", Color.Red));
</code></pre>

<p>Before InitializeComponent(), if I do a breakpoint here it shows that Boxes is a list of SelectionBox with 1 element.  But then inside of my OnPaint override it has been set to null with some weird behaviour, if I do the following:</p>

<pre><code>foreach (SelectionBox box in Boxes) {}
</code></pre>

<p>It doesn't throw an error it just exits the function by there.  What am I doing wrong?</p>

<p>Selection box struct:</p>

<pre><code>[Serializable]
public struct SelectionBox
{
    public string Name;
    public Color Colour;
    public Rectangle BoxRectangle;
    public bool IsActive;

    public SelectionBox(string name, Color colour)
    {
        this.Name = name;
        this.Colour = colour;
        this.IsActive = false;
        this.BoxRectangle = new Rectangle(0, 0, 0, 0);
    }
}
</code></pre>
