[英]How to refresh listbox in the windows Phone
我有一个listbox tuningList
其中包含List<Tuning> tunings
元素:
private void LoadList() {
foreach (Tuning tuning in tunings)
tuningList.Items.Add(tuning);
}
在应用中的某一点我想删除一些元素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
}
但之后,该列表框不会自动更新。
编辑:我没有通过XAML将列表框绑定到集合,而是通过LoadList()添加了元素;
<ListBox x:Name="tuningList" Margin="8,0,8,152" Tap="tuningList_Tap"/>
EDIT2:
<ListBox x:Name="tuningList" Margin="8,0,8,152" ItemsSource=tunings.Items Tap="tuningList_Tap"/>
EDIT3:
<ListBox x:Name="tuningList" Margin="8,0,8,152" DataContext="{Binding RelativeSource={RelativeSource Self}}" ItemsSource="{Binding tunings}" Tap="tuningList_Tap"/>
在这种情况下,我的建议是将ListBox
控件绑定到ObservableCollection<T>
,由于该项目实现了INotifyCollectionChanged
,因此在添加或删除项目时,它将自动通知视图。
您需要将集合绑定到ListBox
。 而不是使用LoadList
而是在XAML中设置ItemsSource
。 否则,将不会发生任何事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.