2016-05-09 42 views
0

我創建了一個DataModel類,其中包含INotifyPropertyChanged方法。排序後沒有更新ListView(windows phone)

然後,我將ListView.ItemsSource分配給DataModel的Observable集合。

如果將新項目添加到Collection中,則ListView會正確更新。 但是當我嘗試對列表進行排序:

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

ListView控件不會自動更新(爲了不改變)。 只有當我再次爲ListView設置ItemsSource時,ListView纔會改變。

如何在物料訂單更改時自動使ListView更新? 感謝您的幫助。

回答

0

發生這種情況是因爲您正在偵聽實例。一個可觀察的集合只會觸發UI更新,如果其元素已被修改,但不會在您更換其實例時觸發。

您將不得不做的事是在用新的已排序的集合替換集合後引發propertychanged事件。根據您如何實施通知事件:

NotifyPropertyChanged("IssuesList"); 
+0

感謝您的回答。 我明白你的意思,但我不知道如何實施它。 我定義了一個名爲「Issue」的類,並在MainPage.xaml.cs中啓動了「IssueList」(排序方法)。 我只知道如何爲NotifyPropertyChanged類的屬性而不是集合。你能告訴我如何? – Martin

+0

集合是你的課堂的一個屬性,對吧? – Fred

+0

不,我從來沒有在Model類中定義過一個集合(我是一個新手)。那麼我需要做的是將IssueList集合添加到應用NotifyPropertyChanged fot的類中? – Martin