【发布时间】:2012-03-29 14:50:58
【问题描述】:
我有模特:
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 并在视图模型中设置它)。
那么我如何在 WP7 中重绘列表框?我找不到 UIElements 的任何 Refresh 或 Update 方法。
我尝试调用 this.OnPropertyChanged("Top100Songs");但它不起作用。我尝试调用 UpdateLayout - 同样。
一种方法是将页面的 DataContex 设置为 null,然后恢复为我的 ViewModel。它可以工作,但是太长了(大约 5 秒用于更改)。
有什么想法吗?
【问题讨论】:
标签: silverlight windows-phone-7 mvvm listbox refresh