Program toma demasiada memoria

Estoy usando WPF para desarrollar un simulador de Conway's Game of Life.

Por alguna razón, a veces el programa toma hasta 400,000K de memoria (cuando dibujo muchas celdas realmente rápido).

¿Cómo puedo reducir el uso de memoria y / o reducir los retrasos causados por él?

Edit 1: Código de la ventana principal:http: //pastebin.com/mz0z7tB

Grid clase:http: //pastebin.com/ZHX1WBu

cell struct:

struct Cell
{
    public int Neighbors {get; set;}
    public bool Alive { get; set; }
}

Edit 2: Intentaré explicar la Estructura del programa: la celda es una estructura que contiene vecinos de AutoProperty de Type int y AutoProperty IsAlive ofType bool.

CellGrid es una clase que envuelve una matriz 2D de celdas. Cada iteración, la propiedad de Vecinos de cada celda se actualiza para contener el número de Vecinos vivos, y luego cada IsALive de la Celda se establece en verdadero o falso, depende del número de vecinos y el estado previo de IsAlive.

La clase MainWindow tiene un objeto de tipo CellGrid. Representa la cuadrícula en la pantalla.

Editar 3:

XAML:http: //pastebin.com/Zp3dr8z

resources.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="{x:Type MenuItem}">
        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="MaxHeight" Value="32" />
    </Style>
    <Style TargetType="{x:Type MenuItem}" x:Key="ParentMenuItem">
        <Setter Property="Width" Value="46" />
    </Style>
</ResourceDictionary>

Respuestas a la pregunta(1)

Su respuesta a la pregunta