从第二个子页面获取数据到第一页 - Windows Phone(最佳方法)

时间:2013-03-10 10:08:16

标签: c# windows-phone-7 mvvm

我想问你,你怎么想,从第二页到第一页的最佳方法是什么?我使用这样的东西。(MVVM)

第二页:

public partial class AddProfilePageView : PhoneApplicationPage
{
    public AddProfilePageView()
    {
        InitializeComponent();
        DataContext = new AddProfileViewModel();
    }

    public AddProfileViewModel ViewModel { get { return DataContext as AddProfileViewModel; } }}

第一页:

public partial class ProfilesPageView : PhoneApplicationPage
{

    public ProfilesPageView()
    {
        InitializeComponent();
        DataContext = new ProfilesViewModel();
    }

    public ProfilesViewModel ViewModel
    {
        get { return DataContext as ProfilesViewModel; }
    }}

AddProfileViewModel()类具有绑定到xaml中控件的属性。从这个页面我需要获取数据到第一页ProfilesPageView。

我的解决方案是:

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
        var content = e.Content as ProfilesPageView;
        if (content != null && ViewModel.IsOk)
        {
                content.ViewModel.ProfilesList.Add(ViewModel.ProfileRecord);

        }
    }

那你觉得怎么样?如何获取数据是好的解决方案? 感谢

1 个答案:

答案 0 :(得分:0)

实际上,您并没有尝试将数据从一个页面转移到另一个页面 在第二个/详细信息页面上,您要添加一个新项目,然后当您返回第一个/主页面时,您希望它更新显示的数据以显示新项目。

我假设AddProfileViewModelProfilesViewModel都持续存放到磁盘/ IsolatedStorage,因此您可以在返回时刷新主/列表/第一页。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);

    // ...

    if (e.NavigationMode == NavigationMode.Back)
    {
        (this.DataContext as ProfilesViewModel).Refresh();
    }
}