将数据加载到Xamarin.Forms MVVM-Architecture应用程序中的最佳位置在哪里?例如:
我使用带有一些包含选取器的ContentPages的选项卡式页面。 Pickers ItemsSources绑定到ViewModel-Property。我的逻辑加载Pickers ItemsSource-Data的最佳位置在哪里?
我可以在ViewModel-Constructor中完成,但我不认为这是因为在构造函数中加载数据只是编码错误。不幸的是,我无法找到任何"加载"在页面上。也许" OnAppearing"事件可以用吗?
加载数据是异步的,我现在根本没有使用任何MVVM-Framework。
答案 0 :(得分:1)
这取决于您要使用的MVVM框架。我个人更喜欢FreshMvvm。这有一个Init
方法,您可以在ViewModel中覆盖,这是加载数据的理想位置。它还为您提供简单的导航方法。在将新视图推送到导航堆栈时,Init
方法也是您可以传递数据的位置。除此之外,它还为您提供ViewIsAppearing
和ViewIsDisappearing
方法。
public override void Init (object initData)
{
base.Init (initData);
}
public override void ReverseInit(object returnedData)
{
base.ReverseInit(returnedData);
}
protected override void ViewIsAppearing(object sender, EventArgs e)
{
base.ViewIsAppearing(sender, e);
}
protected override void ViewIsDisappearing(object sender, EventArgs e)
{
base.ViewIsDisappearing(sender, e);
}