加载到Xamarin.Forms MVVM-Architecture应用程序中的最佳位置在哪里?例如:
我正在使用带有一些包含选择器的内容页面的选项卡式页面。选取器 ItemsSources 绑定到 ViewModel-Properties。放置加载选取器项源数据的逻辑的最佳位置在哪里?
我可以在 ViewModel-Constructor 中做到这一点,但我认为不建议这样做,因为在构造函数中加载数据只是糟糕的编码。不幸的是,我在页面上找不到任何"加载"。也许可以使用"出现"事件?
数据的加载是异步的,我目前根本没有使用任何 MVVM 框架。
这取决于要使用的 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);
}