gpt4 book ai didi

C#根据类类型动态生成 View 和 View 模型

转载 作者:行者123 更新时间:2023-11-30 17:34:35 26 4
gpt4 key购买 nike

(注意:我正在使用 Xamarin.Forms 和 Rg.Plugins.Popup 扩展)

假设我有以下观点:

MyView1.xaml
MyView2.xaml
MyView3.xaml

我有他们对应的 View 模型:

MyViewModel1.cs
MyViewModel2.cs
MyViewModel3.cs

我想在我的导航 Controller 中使用一种方法来显示基于类型的 View 。

NavigationController.ShowView(typeof(MyView1));

或者也许

NavigationController.ShowView(typeof(MyView1), typeof(MyViewModel1));

我该如何实现?

目前我正在列一个 list :

{
List<MyView> viewList = new List<MyView>();

MyView1 view1 = new MyView1();
MyViewModel1 viewModel1 = new MyViewModel1();
view1.BindingContext = viewModel1;
viewList.Add(view1);
// etc ...
}

static public void ShowView(Type type)
{
foreach (MyView v in viewList)
{
if (v.GetType() == type)
{
// code to show the view.
}
}
}

我遇到的问题是,在显示 View 后,当它被关闭时,它会将自己设置为 null。因此,我不想预先生成 View 并将它们存储在列表中,而是想生成新 View 。

最佳答案

很简单...

public static View CreateView(Type vType, Type vmType)
{
var view = (View)Activator.CreateInstance(vType);
view.BindingContext = Activator.CreateInstance(vmType);
return view;
}

关于C#根据类类型动态生成 View 和 View 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com