Windows Phone 8 アプリで、LongListSelector から MenuItem を削除しようとしています。MenuItems はクリックするとさまざまな音を鳴らし、ユーザーがそれらを削除できるようにしたいと考えています。
アプリには 2 つのパネルがあります。2 番目のパネルは新しいサウンドを録音し、その録音を新しい 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();
}