[英]Refresh listbox in wp7
我有模特:
public class Song
{
public int ContentID { get; set; }
public bool IsSelected
{
get
{
var song = PlayerHelper.ReadNowPlaying();
return song.Id == ContentID;
}
}
}
我有一個ListBox視圖:
<ListBox x:Name="songsLstBox" ItemsSource="{Binding Top100Songs}" />
以及帶有歌曲列表的ViewModel。 因此,有時我想刷新(重新繪制)列表框。 需要顯示IsSelected已更改(不,我不能在模型中使用INotifyPropertyChanged並在viewmodel中設置它)。
那么,如何在WP7中重繪列表框? 我找不到UIElements的任何Refresh或Update方法。
我嘗試調用this.OnPropertyChanged(“ Top100Songs”); 但這不起作用。 我嘗試調用UpdateLayout-相同。
一種方法是將頁面的DataContex設置為null,然后還原到我的ViewModel。 它可以工作,但是很長(更改大約需要5秒)。
有什么想法嗎?
編寫自己的收藏包裝,並將其用於Top100Songs屬性
class SongCollection : ObservableCollection<Song>
{
public Refresh()
{
OnCollectionChanged(
new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.