在Xamarin.Forms MVVM-Application中加载数据的位置?

时间:2017-05-17 08:34:01

标签: c# xamarin mvvm xamarin.forms

将数据加载到Xamarin.Forms MVVM-Architecture应用程序中的最佳位置在哪里?例如:

我使用带有一些包含选取器的ContentPages的选项卡式页面。 Pickers ItemsSources绑定到ViewModel-Property。我的逻辑加载Pickers ItemsSource-Data的最佳位置在哪里?

我可以在ViewModel-Constructor中完成,但我不认为这是因为在构造函数中加载数据只是编码错误。不幸的是,我无法找到任何"加载"在页面上。也许" OnAppearing"事件可以用吗?

加载数据是异步的,我现在根本没有使用任何MVVM-Framework。

1 个答案:

答案 0 :(得分:1)

这取决于您要使用的MVVM框架。我个人更喜欢FreshMvvm。这有一个Init方法,您可以在ViewModel中覆盖,这是加载数据的理想位置。它还为您提供简单的导航方法。在将新视图推送到导航堆栈时,Init方法也是您可以传递数据的位置。除此之外,它还为您提供ViewIsAppearingViewIsDisappearing方法。

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