回答編集履歴

1

具体的な解決策を追記いたしました。

2019/07/14 02:38

投稿

heroherohero
heroherohero

スコア38

test CHANGED
@@ -1,3 +1,89 @@
1
1
  申し訳ございません!自己解決しました!
2
2
 
3
3
  ※詳細は後程記載させていただきます。
4
+
5
+
6
+
7
+ (2019.7.14)
8
+
9
+ 遅くなりましたが、こちらの具体的な解決策を記載いたします。
10
+
11
+
12
+
13
+ 前提として、Prismを利用して、MVVMの設計にしたがってコーディングをしています。
14
+
15
+
16
+
17
+ 〇フォルダ構成としては、以下のようなものを想定してください。
18
+
19
+ ViewModels/MainViewModel.cs
20
+
21
+ View/MainPage.xaml
22
+
23
+ View/MainPage.xaml.cs
24
+
25
+
26
+
27
+ そうした場合、「MainPage.xaml.cs」ファイルに「INavigationService」型のパラメータを、実行したいメソッドの引数にパラメータとして渡し、「実行したい処理」→「画面遷移」の順でプログラムを書けば完成です。
28
+
29
+ (Delegateを使っているのも、一つのポイントかと。)
30
+
31
+
32
+
33
+ 〇MainPage.xaml.cs
34
+
35
+ ```C#
36
+
37
+ public DelegateCommand MainItem { get; }
38
+
39
+
40
+
41
+ private INavigationService NavigationService { get; }
42
+
43
+
44
+
45
+ public MainViewModel(INavigationService navigationService)
46
+
47
+ {
48
+
49
+ this.NavigationService = navigationService;
50
+
51
+
52
+
53
+ this.MainItem = new DelegateCommand(async () =>
54
+
55
+ {
56
+
57
+ try
58
+
59
+ {
60
+
61
+ // 実行したい処理。
62
+
63
+ // 処理実行後に、画面遷移。
64
+
65
+ NavigationService.Navigate("NextPage", null);
66
+
67
+ }
68
+
69
+ catch (Exception e)
70
+
71
+ {
72
+
73
+ Debug.WriteLine(e.Message);
74
+
75
+ }
76
+
77
+ });
78
+
79
+ }
80
+
81
+ ```
82
+
83
+
84
+
85
+ ※恐らく他の方法もあると思いますので、その場合はコメントいただけますと幸いです。
86
+
87
+
88
+
89
+ よろしくお願いいたします。