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