C# 如何在windows Phone中刷新列表框
我有一个C# 如何在windows Phone中刷新列表框,c#,list,windows-phone-7,listbox,C#,List,Windows Phone 7,Listbox,我有一个列表框调整列表,其中包含列表调整的元素: private void LoadList() { foreach (Tuning tuning in tunings) tuningList.Items.Add(tuning); } 在应用程序中的某个时刻,我想删除调谐中的一些元素,并更新列表框 int selectionIndex = tuningList.SelectedIndex; i
列表框调整列表
,其中包含列表调整的元素
:
private void LoadList() {
foreach (Tuning tuning in tunings)
tuningList.Items.Add(tuning);
}
在应用程序中的某个时刻,我想删除调谐中的一些元素
,并更新列表框
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()添加了元素
编辑2:
<ListBox x:Name="tuningList" Margin="8,0,8,152" ItemsSource=tunings.Items Tap="tuningList_Tap"/>
编辑3:
<ListBox x:Name="tuningList" Margin="8,0,8,152" DataContext="{Binding RelativeSource={RelativeSource Self}}" ItemsSource="{Binding tunings}" Tap="tuningList_Tap"/>
在这种情况下,我的建议是将您的
列表框
控件绑定到,当某个项由于实现了INotifyCollectionChanged
而被添加或删除时,该控件将自动通知视图
您需要将集合绑定到
列表框
。不要使用LoadList
而是在XAML中设置ItemsSource
。否则什么也不会发生。整个应用程序中的更改太多(时间不够)是否有如此干净的解决方案?您实际上没有太多的更改,因为您可以在ObservaleCollection上使用与列表上几乎相同的调用。我这样做了,但不幸的是列表框没有更新。也许我绑定错了。你能更新你的帖子来展示你是如何将收藏绑定到列表框
控件的吗?我把它仔细地装订起来,和原来的帖子一样。
<ListBox x:Name="tuningList" Margin="8,0,8,152" DataContext="{Binding RelativeSource={RelativeSource Self}}" ItemsSource="{Binding tunings}" Tap="tuningList_Tap"/>