リストボックスにバインドされた項目の値を変更したとき、並べ替えられた注文が自動的に変更されるはずです。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クラス)を追加したときに、それがうまく動作します。プロパティを変更するだけで問題が発生しました。
どのようにデータをUIコントロールにバインドするかを示すことができますか? –
もちろん。ちょっと待って。 – mjk6026