为什么我的列表视图在返回后是空的?
本文关键字:返回 我的 列表 视图 为什么 | 更新日期: 2023-09-27 18:12:42
我在MainPage中有一个itemsource="{Binding}"的listview。然后用下面的代码填充。
viewContacts.ItemsSource = null;
viewContacts.ItemsSource = itemsList;
itemsList是一个ObservableCollection .
我也有一个功能,如果我按下一个项目导航到另一个页面。
private void viewContacts_ItemClick(object sender, ItemClickEventArgs e)
{
var clickedcontact = e.ClickedItem as contact;
this.Frame.Navigate(typeof(contactdetails), clickedcontact);
}
contactdetails是一个DetailPage。
如果我用这段代码返回到DetailPage
private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
if (Frame.CanGoBack)
{
Frame.GoBack();
e.Handled = true;
}
}
我的列表是空的,我必须按另一个搜索键来查找联系人。
回到WP8.1,我的列表不是空的,而是填满了之前的结果。
Windows Universal App 10, VS 2015, c#, XAML
首先,如果你做了viewContacts.ItemsSource = itemsList;
,就没有必要做itemsource="{Binding}
。第二,当你离开页面的时候你是否做过LoadState或者SaveState或者你是否将数据保存在OnNavigatedFrom或者加载到OnNavigatedTo??
为了让你的数据继续存在,你必须把它们保存在某个地方。最简单和最快的方法是将它们保持在静态状态,如:
public static ObservableCollection<MyClass> itemsList = new ObservableCollection<MyClass>();
您需要将NavigationCache设置为required,以便它保留输入。看看这个msdn页面:页面。NavigationCacheMode
所以页面不需要重新加载所有的东西