Cuando modifiqué el valor de un artículo que estaba encuadernado en listbox, esperaba que una orden ordenada cambiara automáticamente.SortDescription y orden automática de actualización refresh
Pero no es así.
¿Llamo a un método .SortDescriptions.Clear() y reasigno una descripción de clase en este caso?
.Refresh() no funciona.
editado
i atado y Setted los datos como este;
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));
Cuando la aplicación se lanzó por primera vez, mostró el resultado correcto. Pero cuando modifico el valor de un elemento (en este caso, la propiedad 'ModifiedTime'), una vista no cambia. Y relancé la aplicación, mostrando nuevamente el resultado correcto.
EDITED2
Aquí es un código fuente del Records
.
public class Records : ObservableCollection<RecordItem>
{
public Records() { }
}
y aquí es un código fuente de la '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
cuando he añadido un artículo en myRecents, (la clase Record), que funciona bien. Se ha producido un problema solo modificando una propiedad.
¿Puedes mostrar cómo estás vinculando los datos al control de la interfaz de usuario? –
Por supuesto. espera un minuto. – mjk6026