如何刷新Windows Phone中的列表框

Yod*_*oda 2 c# listbox list windows-phone-7

我有一个listbox tuningList包含的元素List<Tuning> tunings:

  private void LoadList() {
            foreach (Tuning tuning in tunings)
                tuningList.Items.Add(tuning);
        }
Run Code Online (Sandbox Code Playgroud)

在应用程序的某个点我想删除一些元素tunings并更新listbox

 int selectionIndex = tuningList.SelectedIndex;
            if (selectionIndex >= 0) {
                pageTitle.Text = "Deleted tuning";
                tunings.RemoveAt(selectionIndex);
               // tuningList.Items.RemoveAt(selectionIndex);
                saveData(saver); //saves data to isolated storage 

            } 
Run Code Online (Sandbox Code Playgroud)

但之后列表框不会更新自己.

编辑:我没有通过XAML将列表框绑定到集合,我通过LoadList()添加元素;

<ListBox x:Name="tuningList" Margin="8,0,8,152" Tap="tuningList_Tap"/>
Run Code Online (Sandbox Code Playgroud)

EDIT2:

<ListBox x:Name="tuningList" Margin="8,0,8,152" ItemsSource=tunings.Items Tap="tuningList_Tap"/>
Run Code Online (Sandbox Code Playgroud)

EDIT3:

<ListBox  x:Name="tuningList" Margin="8,0,8,152"  DataContext="{Binding RelativeSource={RelativeSource Self}}" ItemsSource="{Binding tunings}" Tap="tuningList_Tap"/>   
Run Code Online (Sandbox Code Playgroud)

Den*_*sky 6

在这种情况下,我的建议是将您的ListBox控件绑定到a ObservableCollection<T>,当项目被添加或删除时,它将自动通知视图,因为它实现了它INotifyCollectionChanged.

您需要将集合绑定到ListBox.而不是在XAML 中使用LoadListset ItemsSource.否则什么都不会发生.