![](/img/trans.png)
[英]Asp.Net MVC: Generate dynamic view based on JSON OR C# class object data
[英]C# Dynamically generate view and view model based on class type
(注意:我使用的是Xamarin.Forms和Rg.Plugins.Popup擴展名)
假設我有以下觀點:
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。 因此,我想生成新的視圖而不是預生成視圖並將它們存儲在列表中。
很簡單...
public static View CreateView(Type vType, Type vmType)
{
var view = (View)Activator.CreateInstance(vType);
view.BindingContext = Activator.CreateInstance(vmType);
return view;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.