当我从一个页面导航到另一个页面时,我传递了一个类对象并添加到列表视图中。但我面临的问题是,每次浏览页面时,项目都会添加到列表框中,但之前添加的项目将被删除。
任何人都可以帮我解决这个问题以及如何检索以前的列表框项目吗?
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if ((App.Current as App).isThereAnyChange)
{
getitem();
changeUI();
}
}
private void changeUI()
{
//throw new NotImplementedException();
txt1.Text = "";
items.Add(item1);
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
this.sniplist.ItemsSource = items;
});
}
private void getitem()
{
// throw new NotImplementedException();
item1 = PhoneApplicationService.Current.State["item"] as Item;
// Debug.WriteLine(item1.description);
}
答案 0 :(得分:0)
在.... xaml.cs文件中保留一个静态项目
static List<object> listSrc = new List<object>();
override OnNavigatedTo()
{
listSrc.Add("whatever you want");
sniplist.ItemsSource= listSrc;
}
答案 1 :(得分:0)
这里有一个简单的设置:
public class MainViewModel
{
public ObservableCollection<Item> Items { get; private set; }
public MainViewModel() { Items = new ObservableCollection<Item>(); }
}
在App.xaml.cs中:
public partial class App : Application
{
private static MainViewModel viewModel = new MainViewModel();
public static MainViewModel ViewModel { get { return viewModel; } }
...
然后您可以使用App.ViewModel从任何页面访问该类,并且它将通过页面导航保持不变。