回答編集履歴

2

コード修正

2020/04/16 18:56

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -32,7 +32,9 @@
32
32
 
33
33
 
34
34
 
35
+        var navigationService = ((IContainerExtension)PrismApplicationBase.Current.Container).CreateNavigationService(this);
36
+
35
- BindingContext = PrismApplicationBase.Current.Container.Resolve<ViewModels.MainPageViewModel>();
37
+ BindingContext = PrismApplicationBase.Current.Container.Resolve<ViewModels.MainPageViewModel>((typeof(INavigationService), navigationService));
36
38
 
37
39
  }
38
40
 

1

自前の作成方法の追記

2020/04/16 18:55

投稿

f-miyu
f-miyu

スコア1625

test CHANGED
@@ -1 +1,43 @@
1
1
  Prismが自動でViewModelを作成するので、自分でnewして`BindingContext`に代入する必要はありません。自動作成の際に、Unityを利用して、コンストラクタに引数が渡されます。
2
+
3
+ 一応、以下のようにすれば、自分で作成することもできます。
4
+
5
+
6
+
7
+ ```C#
8
+
9
+ using PrismTest.Model;
10
+
11
+ using Xamarin.Forms;
12
+
13
+ using Prism;
14
+
15
+ using Prism.Ioc;
16
+
17
+
18
+
19
+ namespace PrismTest.Views
20
+
21
+ {
22
+
23
+ public partial class MainPage : ContentPage
24
+
25
+ {
26
+
27
+ public MainPage()
28
+
29
+ {
30
+
31
+ InitializeComponent();
32
+
33
+
34
+
35
+ BindingContext = PrismApplicationBase.Current.Container.Resolve<ViewModels.MainPageViewModel>();
36
+
37
+ }
38
+
39
+ }
40
+
41
+ }
42
+
43
+ ```