正在创建多个相同的视图模型

时间:2019-02-21 19:38:44

标签: xamarin.forms

在我的Xamarin.Forms应用程序中,我有1页,并且正在xaml中设置视图模型,如下所示:

<ContentPage.BindingContext>
    <vm:MainViewModel />
</ContentPage.BindingContext>

问题是,当我将应用程序置于后台并再次打开时,我有2个MainViewModel实例。我可以在调试器中看到已经创建了一个新代码,但是仍然从事件处理程序中调用了第一个代码(在将其放入后台之前)。

我该如何解决?是否可以保留和使用相同的视图模型?还是我每次关闭并重新打开应用程序时都被迫拥有一个新的?如果是这样,如何确定旧的已从内存中释放?

我正在Android设备上运行该应用程序。

1 个答案:

答案 0 :(得分:2)

这听起来像是回归错误,因为它已被多次报告/修复。

我在SO上有一个类似的线程:Xamarin.Forms ViewModelLocator get called twice

除非它是一页应用程序,否则请不要在BindingContext中设置XAML,而应考虑使用IoC容器。