3
(注:我使用Xamarin.Forms和Rg.Plugins.Popup扩展名)C#动态基于类的类型生成视图,视图模型
假设我有以下几点看法:
MyView1.xaml
MyView2.xaml
MyView3.xaml
我有他们相应的视图模型:
MyViewModel1.cs
MyViewModel2.cs
MyViewModel3.cs
我想我的导航控制器中的方法显示基于类型的视图。
NavigationController.ShowView(typeof(MyView1));
也许
NavigationController.ShowView(typeof(MyView1), typeof(MyViewModel1));
我怎么能实现呢?
目前我列了清单:
{
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.
}
}
}
我遇到的问题是,显示视图,当它被驳回后,它本身设置为null。因此,我不想预先生成视图并将它们存储在列表中,而是想生成新视图。
真棒!谢谢。 –
这效果很好。快速的问题 - 通常建议每次进入页面时创建新的视图/视图模型?或者一次创建视图/视图模型,将其存储在列表中,然后重新使用它。 –
@Stephane如果VIewModel有一个参数构造函数,那么在这种情况下如何创建VM – Hunt