War es hilfreich?

Lösung

Meine erste Vermutung ist, dass Sie so etwas wie die folgenden für den Wurzelknoten haben:

public ObservableCollection<Entity> Entities
{
    get;
    set;
}

Dann anstatt das zu tun, was [gut] wie folgt aus:

Entities.Clear();
foreach (var item in someSetOfItems)
    Entities.Add(item);

Sie tun etwas [schlecht] wie folgt aus:

Entities = new ObservableCollection<Entity>(someSetOfItems);

Es soll möglich sein, das Problem auf die Spur durch das dahinter liegende Feld der Entities Eigenschaft readonly machen:

private readonly ObservableCollection<Entity> _entities
    = new ObservableCollection<Entity>();

public ObservableCollection<Entity> Entities
{
    get
    {
        return _entities;
    }
}

Andere Tipps

Eine weitere Erklärung, lange Zeit für die Antwort zu kommen, aber ich glaube, dass, wenn Sie tun das in XAML zu binden, und dann in Code Vergeben Sie ein neues Objekt in die Immobilie, die Sie die Bindung brechen, so würde man die Bindung in wiederholen müssen Code für sie zu arbeiten. Daraus ergibt sich die Lösung mit dem Nur-Lese-Trägerfeld. Wenn wie zu tun, dass Sie nicht in der Lage sein wird, eine neue ObservableCollection zuweisen und Sie werden nicht die Bindung brechen, indem ein neues Objekt auf dem Trägerfeld zuweisen.

scroll top