Quando ho modificato un valore di un elemento associato in lista, mi aspettavo che un ordine ordinato dovesse cambiare automaticamente.SortDescription e aggiornamento automatico dell'ordine ordinato
Ma non è così.
Sto chiamando un metodo .SortDescriptions.Clear() e riallocato un SortDescription in questo caso?
. Refresh() non funziona.
a cura
ho legato e situato il di dati di questo tipo;
public Records myRecents;
....
//lbToday is a ListBox.
//ModifiedTime is a DateTime.
this.lbToday.ItemsSource = new ListCollectionView(myRecents);
this.lbToday.Items.SortDescriptions.Add(new SortDescription("ModifiedTime", ListSortDirection.Descending));
Quando l'app è stata avviata per la prima volta, ha mostrato il risultato corretto. Ma quando modifico un valore dell'articolo (in questo caso, proprietà 'ModifiedTime'), una vista non cambia. E ho riavviato l'app, mostrando di nuovo un risultato corretto.
EDITED2
Qui è un codice sorgente del Records
.
public class Records : ObservableCollection<RecordItem>
{
public Records() { }
}
e qui è un codice sorgente del 'RecordItem'
public class RecordItem : INotifyPropertyChanged
{
string queryString; public string QueryString { get { return queryString; } set { queryString = value; Notify("QueryString"); } }
DateTime modifiedTime; public DateTime ModifiedTime { get { return modifiedTime; } set { modifiedTime = value; Notify("ModifiedTime"); } }
public RecordItem() { }
public RecordItem(string qStr)
{
this.queryString = qStr;
this.modifiedTime = DateTime.Now;
}
public event PropertyChangedEventHandler PropertyChanged;
protected void Notify(string propName) { if (this.PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propName)); } }
}
Nota
quando ho aggiunto un elemento in myRecents, (la classe Record), funziona bene. Si è verificato un problema solo modificando una proprietà.
puoi mostrare come si stanno vincolando i dati al controllo dell'interfaccia utente? –
Ovviamente. apetta un minuto. – mjk6026