2011-09-10 8 views
5

Kiedy zmieniłem wartość przedmiotu, który jest związany w polu listy, oczekiwałem, że posortowane zamówienie powinno się automatycznie zmieniać.SortDescription i automatyczne sortowane odświeżenie zamówienia

Ale tak nie jest.

Czy nazywam metodę .SortDescriptions.Clear() i czy w takim przypadku należy ponownie przydzielić opis SortDescription?

.Refresh() nie działa.

EDITED

i związany i Setted danych podobnych;

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)); 

Po uruchomieniu aplikacji po raz pierwszy pokazał poprawny wynik. Ale kiedy modyfikuję wartość elementu (w tym przypadku właściwość "ModifiedTime"), widok się nie zmienia. Ponownie uruchomiłem aplikację, która ponownie wyświetliła poprawny wynik.

EDITED2

Oto kod źródłowy Records.

public class Records : ObservableCollection<RecordItem> 
{ 
    public Records() { } 

} 

i tutaj jest kod źródłowy '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)); } } 

} 

Uwaga

Kiedy Dodano przedmiot w myRecents, (klasa Record), to działa dobrze. Wystąpił problem tylko modyfikujący właściwość.

+0

czy możesz pokazać, w jaki sposób wiążesz dane z formantem interfejsu użytkownika? –

+0

Oczywiście. Poczekaj minutę. – mjk6026

Odpowiedz

Powiązane problemy