关于windows phone中MainPage方法的启动时间问题
大家都知道在一个程序启动的时候会先执行MainPage.xaml.cs中的代码,而其中有会先运行MainPage()这个构造函数
下面是一般的实现:
public MainPage()
{
InitializeComponent();
DataContext = App.ViewModel;
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
if (!App.ViewModel.IsDataLoaded)
{
App.ViewModel.LoadData();
}
}
第二个方法MainPage_Loaded肯定是每次执行构造函数才触发的,里面的判断语句是为了防止相同数据重复加载的,但是我感觉这个程序运行后这个代码就只执行一次所以应该不会有重复加载的问题啊,是不是可以直接去掉里面的判断直接
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
App.ViewModel.LoadData();
}
因为加载之后,程序是没有机会再运行到这个位置的了
[解决办法]
是的,
其实你要考虑的是如果要删除,更新,添加后数据的变化后UI应该怎么操作
[解决办法]
同意2楼的说法
[解决办法]
如果使用Navigate方法跳转到MainPage时,是会重新触发其构造函数的,这样就会导致数据的重复加载。