我正在尝试从我的 Windows Phone 8 应用程序中的 LongListSelector 中删除 MenuItem。MenuItems 在单击时会播放各种声音,我希望用户能够删除它们。
该应用程序上有两个面板。第二个面板录制新声音并将录音作为新的 MenuItem 放在 LongListSelector 上。
问题:删除后,显示看起来完全一样,声音仍然播放!但是,如果我录制新的声音(切换到新的录制面板),那么删除工作会在删除的 MenuItem 消失的情况下进行。
如何强制 LongListSelector 的更新/刷新以卸载/删除位于 GUI 上的 MenuItem 和关联的声音数据?
从 MenuItem 的单击事件调用以下代码。LongListSelector 被命名为“CustomSounds”:
private void DeleteSoundClick(object sender, RoutedEventArgs e)
{
var menuItem = sender as MenuItem;
if (menuItem == null) return;
var soundData = menuItem.DataContext as SoundData;
if (soundData == null) return;
if (soundData.FilePath.Contains(CustomSounds.Name))
{
CustomSounds.ItemsSource.Remove(soundData);
}
this.LayoutRoot.UpdateLayout();
}