簡體   English   中英

刷新WP7中的列表框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM