2011-09-10 5 views
5

リストボックスにバインドされた項目の値を変更したとき、並べ替えられた注文が自動的に変更されるはずです。SortDescriptionと自動並べ替え順の更新

しかし、そうではありません。

私はこの場合、.SortDescriptions.Clear()メソッドを呼び出し、SortDescriptionを再割り当てしますか?

。リフレッシュ()が機能しません。

は、私はこのようなデータをバインドしてsetted

を編集しました。

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

アプリが初めてで起動すると、それは正しい結果を示しました。しかし、アイテムの値を変更すると(この場合、 'ModifiedTime'プロパティ)、ビューは変更されません。そして私は再びアプリケーションを起動し、正しい結果を再度表示します。ここ

EDITED2

Recordsのソースコードです。

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

} 

、ここで '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)); } } 

} 

のソースコードである私はmyRecentsの項目、(Recordクラス)を追加したときに、それがうまく動作します。プロパティを変更するだけで問題が発生しました。

+0

どのようにデータをUIコントロールにバインドするかを示すことができますか? –

+0

もちろん。ちょっと待って。 – mjk6026

答えて