Xamarin.forms如何将字符串转换为页面

问题描述 投票:0回答:2

这是我在ViewModel中的代码

  async Task ExecuteMenu(object obj)
        {
            Page page = new Page();
            System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
            Type t_form = asm.GetType(asm.GetName().FullName + "." + obj.ToString());
            page = Activator.CreateInstance(t_form) as Page;


            try
            {
                await Application.Current.MainPage.Navigation.PushAsync(new page());
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {

            }
        }

我有一个从Command加载的菜单元素。在obj中,我传递了包含所选内容页面名称的字符串。我不知道如何将字符串名称转换为页面对象名称。此代码无效。我正在尝试动态调用页面。

xamarin xamarin.forms xamarin.android xamarin.ios
2个回答
1
投票

尝试一下:

         var pageType= Type.GetType($"NamespaceOfYourView.{obj}");
         var page = Activator.CreateInstance(pageType) as Page;
         await Application.Current.MainPage.Navigation.PushAsync(page );

0
投票

asm.GetName().Name替换asm.GetName().FullName

输出

GetName()。Name:“您的名称空间”

GetName()。FullName:“您的命名空间,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空”

显然,Name字符串是正确的字符串。

© www.soinside.com 2019 - 2024. All rights reserved.