質問編集履歴

1

質問の内容を一部変更

2021/08/02 08:56

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- WPF TriggerとBehavior使い分け
1
+ WPF TriggerコントロールIDの取得方法
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- イベトトリガーとビヘイビアの使い分け関して教えてください。
3
+ ボタンに割り当たUidの取得方法を教えてください。
4
4
 
5
5
 
6
6
 
@@ -10,23 +10,11 @@
10
10
 
11
11
 
12
12
 
13
- 特定のボタンに実装したいため、下記のソースのようにイベントトリガーの処理を記載したのですが、
13
+ 下記のソースのようにイベントトリガーの処理を記載したのですが、(Button)e.Source;の箇所でNullReferenceExceptionが発生します。
14
14
 
15
- 「ビヘイビアはある特定のイベントのみに対応する処理を書くもの」
16
-
17
- うことを知ったため今回の場合もビヘビア実装したのでしょうか?
15
+ 参考にしてたソースはコードビハインドに処理があったのでトリガーベント取得ようとしのです実装できてません。
18
16
 
19
17
 
20
-
21
- また、ボタンの数が増えた場合、各ボタンに
22
-
23
-  <behaviors:Interaction.Triggers>
24
-
25
-    :
26
-
27
-  </behaviors:Interaction.Triggers>
28
-
29
- の部分を記載する必要があるため記載する量が増えると思うのですが、処理をまとめることはできるでしょうか?
30
18
 
31
19
 
32
20
 
@@ -92,6 +80,48 @@
92
80
 
93
81
 
94
82
 
83
+ ```MainWindowViewModel
84
+
85
+
86
+
87
+ private ListenerCommand<RoutedEventArgs> menuBtnClick;
88
+
89
+ public ListenerCommand<RoutedEventArgs> MenuBtnClick => menuBtnClick ??= new ListenerCommand<RoutedEventArgs>(MenuBtnClickEvent);
90
+
91
+
92
+
93
+
94
+
95
+ private void MenuBtnClickEvent(RoutedEventArgs e)
96
+
97
+ {
98
+
99
+ var index = int.Parse(((Button)e.Source).Uid);
100
+
101
+
102
+
103
+ switch (index)
104
+
105
+ {
106
+
107
+ case 0:
108
+
109
+      //何か処理
110
+
111
+ break;
112
+
113
+ default:
114
+
115
+ break;
116
+
117
+ }
118
+
119
+ }
120
+
121
+ ```
122
+
123
+
124
+
95
125
  ### 補足情報(FW/ツールのバージョンなど)
96
126
 
97
127
  VisualStudio2019