我有 ObservableCollection 播放列表。此播放列表项显示在列表框中。所有项目都在一个特殊的线程中更新它们的数据。我只需要在更新所有数据后,列表框中的元素更新其信息。实际上有没有办法通知项目中的所有数据都发生了变化?我有 1 个解决方案,但它看起来很糟糕,而且在某些情况下它会导致错误。
private void AsyncMIReady(MediaItem mediaItem)
{
if (PlayList.Contains(mediaItem))
{
CurSynchronizationContext.Post(delegate(object someState)
{
UpdateItemInPlayList(mediaItem);
}
, null);
}
}
public void UpdateItemInPlayList(MediaItem mediaItem)
{
int i = PlayList.IndexOf(mediaItem);
PlayList.RemoveAt(i);
PlayList.Insert(i, mediaItem);
}