使用导航项更新列表框

时间:2014-09-29 09:34:13

标签: c# windows-phone-8

当我从一个页面导航到另一个页面时,我传递了一个类对象并添加到列表视图中。但我面临的问题是,每次浏览页面时,项目都会添加到列表框中,但之前添加的项目将被删除。

任何人都可以帮我解决这个问题以及如何检索以前的列表框项目吗?

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);
}

2 个答案:

答案 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从任何页面访问该类,并且它将通过页面导航保持不变。