2011-09-10 13 views
5

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.

+0

¿Puedes mostrar cómo estás vinculando los datos al control de la interfaz de usuario? –

+0

Por supuesto. espera un minuto. – mjk6026

Respuesta

Cuestiones relacionadas