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)
在这种情况下,我的建议是将您的ListBox控件绑定到a ObservableCollection<T>,当项目被添加或删除时,它将自动通知视图,因为它实现了它INotifyCollectionChanged.
您需要将集合绑定到ListBox.而不是在XAML 中使用LoadListset ItemsSource.否则什么都不会发生.
| 归档时间: |
|
| 查看次数: |
3448 次 |
| 最近记录: |