ObservableCollection no actualiza Ver

Acabo de comenzar con MVVM y he encontrado un obstáculo con el que espero que alguien pueda ayudarme. Estoy tratando de crear una vista simple con 2 cuadros de lista. Una selección del primer cuadro de lista completará el segundo cuadro de lista. Tengo una clase creada que almacena la información a la que quiero vincularme.

MyObject Class (Observable Object es solo una clase base que implementa INotifyPopertyChanged)

public class MyObject : ObservableObject
{
    String _name = String.Empty;
    ObservableCollection<MyObject> _subcategories;

    public ObservableCollection<MyObject> SubCategories
    {
        get { return _subcategories; }

        set
        {
            _subcategories = value;
            RaisePropertyChanged("SubCategories");
        }
    }

    public String Name
    {
        get { return _name; }
        set
        {
            _name = value;
            RaisePropertyChanged("Name");
        }
    }


    public MyObject()
    {
        _subcategories = new ObservableCollection<EMSMenuItem>();
    }
}

En mi modelo de vista tengo dos ObservableCollections creadas

public ObservableCollection<EMSMenuItem> Level1MenuItems { get; set; }
public ObservableCollection<EMSMenuItem> Level2MenuItems { get; set; }

En mi constructor de ViewModel tengo:

this.Level1MenuItems = new ObservableCollection<EMSMenuItem>();
this.Level2MenuItems = new ObservableCollection<EMSMenuItem>();
this.Level1MenuItems = LoadEMSMenuItems("Sample.Xml");

Eso funciona bien para los elementos de Nivel 1 y se muestran correctamente en la Vista. Sin embargo, tengo un comando que se llama cuando el usuario hace clic en un elemento en el cuadro de lista, que tiene lo siguiente:

Level2MenuItems = ClickedItem.SubCategories;

Por alguna razón, esto no actualiza la interfaz de usuario del segundo cuadro de lista. Si pongo un punto de interrupción en esta ubicación, puedo ver que Level2MenuItems tiene la información correcta almacenada. Si escribo un bucle foreach y los agrego individualmente a la colección Level2MenuItems, entonces se muestra correctamente.

También como prueba, agregué lo siguiente al constructor:

Level2MenuItems = Level1MenuItems[0].SubCategories;

Y eso se actualizó correctamente.

Entonces, ¿por qué el código funcionaría como se esperaba en el constructor, o al recorrerlo, pero no cuando un usuario hace clic en un elemento en el cuadro de lista?

Respuestas a la pregunta(6)

Su respuesta a la pregunta