我想问你,你怎么想,从第二页到第一页的最佳方法是什么?我使用这样的东西。(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);
}
}
那你觉得怎么样?如何获取数据是好的解决方案? 感谢
答案 0 :(得分:0)
实际上,您并没有尝试将数据从一个页面转移到另一个页面 在第二个/详细信息页面上,您要添加一个新项目,然后当您返回第一个/主页面时,您希望它更新显示的数据以显示新项目。
我假设AddProfileViewModel
和ProfilesViewModel
都持续存放到磁盘/ IsolatedStorage,因此您可以在返回时刷新主/列表/第一页。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
// ...
if (e.NavigationMode == NavigationMode.Back)
{
(this.DataContext as ProfilesViewModel).Refresh();
}
}