2016-05-09 12 views
0

INotifyPropertyChangedメソッドを含むDataModelクラスを作成しました。並べ替え後にリストビューが更新されない(ウィンドウズ電話)

次に、ListView.ItemsSourceをDataModelのObservable Collectionに割り当てます。

新しいアイテムがコレクションに追加されると、ListViewが正しく更新されます。 しかし、私はリストをソートしようとすると:

IssuesList = new ObservableCollection<Issue>(IssuesList.OrderBy(x => x.name).ToList()); 

リストビューは自動的に更新されていない(順番は変更されません)。 リストビューは、リストビューのItemsSourceを再度設定した場合にのみ変更されます。

アイテムの注文が変更されたときに、ListViewの更新を自動的に行う方法はありますか? ありがとうございます。

答えて

0

これは、インスタンスを解読しているために発生します。観察可能なコレクションは、その要素が変更された場合のみUIの更新を起動しますが、そのインスタンスを置き換えるときは更新されません。

あなたがしなければならないことは、コレクションを新しいソート済みのものに置き換えた後に、propertychangedイベントを発生させることです。通知イベントの実装方法によっては、

NotifyPropertyChanged("IssuesList"); 
+0

ありがとうございました。 あなたの言ったことを理解していますが、実装方法がわかりません。 "Issue"というクラスを定義し、 "IssueList"をMainPage.xaml.cs(sortメソッドも)で開始します。 私はNotifyPropertyChangedをコレクションのコレクションではなく、クラスのプロパティとして再利用する方法しか知りません。どうやって私に見せることができますか? – Martin

+0

コレクションはあなたのクラスのプロパティですよね? – Fred

+0

いいえ、Modelクラスのコレクションを定義したことはありません(私は初心者です)。だから私は、クラスにIssueListコレクションを追加して、NotifyPropertyChangedを適用する必要がありますか? – Martin

関連する問題