如何在MVVMCross中正确显示MvxContentView

问题描述

我创建了新的ContentView。

[XamlCompilation(XamlCompilationoptions.Compile)]
public partial class LoadingOverlay : MvxContentView<LoadingOverlayviewmodel>    {
        public LoadingOverlay()
        {
            InitializeComponent();
        }
}

XAML:

<?xml version="1.0" encoding="utf-8" ?>
<views:MvxContentView x:TypeArguments="viewmodels:LoadingOverlayviewmodel"
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:views="clr-namespace:MvvmCross.Forms.Views;assembly=MvvmCross.Forms"
    xmlns:mvx="clr-namespace:MvvmCross.Forms.Bindings;assembly=MvvmCross.Forms"
    xmlns:local="clr-namespace:SomeApp.UI.Pages"
    x:Class="SomeApp.UI.Layout.LoadingOverlay"
    NavigationPage.HasNavigationBar="False"
    xmlns:viewmodels="clr-namespace:SomeApp.Core.viewmodels;assembly=SomeApp.Core">
    <ContentView.Content>
      
    </ContentView.Content>
</views:MvxContentView>

当我尝试从另一个viewmodel导航到该视图时,出现NullReferenceException。

public Homeviewmodel(IMvxNavigationService navigationService)
{
       navigationService.Navigate<LoadingOverlayviewmodel>();
}

LoadingOverlayviewmodel看起来像:

public class LoadingOverlayviewmodel : Mvxviewmodel
    {
        private bool _isVisible;
        public bool IsVisible
        {
            get => _isVisible;
            set => SetProperty(ref _isVisible,value);
        }

        public LoadingOverlayviewmodel()
        {
        }
       
        public override async Task Initialize()
        {
            await base.Initialize();
            await Task.Yield();
        }
    }

如何解决此问题并显示LoadingOverlay?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)