Ho un ListBox sulla mia UI che è associato a una proprietà di ObservableCollection. Ho impostato una nuova istanza di ObservableCollection nella proprietà nel costruttore del modello di vista e posso aggiungere elementi con un pulsante sul modulo. Questi sono visibili nella lista.ObservableCollection perde binding quando I "new" it
Tutto è buono.
Tuttavia, se reinizializzare la proprietà con nuova nel tasto di richiamata, si rompe il legame e l'interfaccia utente non è più mostra ciò che è nella collezione.
Ho ritenuto che il binding continuasse a cercare i valori della proprietà, ma è presumibilmente collegato a un riferimento che viene distrutto dal new.
Ho capito bene? Qualcuno può espandersi su come questo è collegato? C'è un modo per rebindarlo quando il mio modello di vista non ha conoscenza della vista?
Aggiunta di ogni elemento alla raccolta osservabile aumenta l'aggiornamento dell'interfaccia utente roundrip.So si dovrebbe evitare la seconda soluzione. –
D'accordo, il secondo approccio qui aumenterà il numero di chiamate 'CollectionChanged' e se in realtà diventerà un problema e vorrete evitare di creare nuovamente una collezione, suggerirei di implementare il vostro' ObservableCollection' con un metodo AddRange che sarebbe abbastanza fatto facilmente, ma nella maggior parte dei casi non sarebbe una preoccupazione –