質問するログイン新規登録

質問編集履歴

1

質問の内容を一部変更

2021/08/02 08:56

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- WPF TriggerとBehavior使い分け
1
+ WPF TriggerコントロールIDの取得方法
body CHANGED
@@ -1,18 +1,12 @@
1
1
  ### 前提・実現したいこと
2
- イベトトリガーとビヘイビアの使い分け関して教えてください。
2
+ ボタンに割り当たUidの取得方法を教えてください。
3
3
 
4
4
  ボタンを押下時にUIDを取得する処理をTriggerを使用して作成しました。
5
5
  ボタンコントロールは複数あり、そのうちのいくつかに押下イベントを実装したいと考えています。
6
6
 
7
+ 下記のソースのようにイベントトリガーの処理を記載したのですが、(Button)e.Source;の箇所でNullReferenceExceptionが発生します。
7
- 特定のボタン実装いため、下記のソースのようにントリガーの処理を記載したのですが
8
+ 参考にしいたソースはコードビハインドに処理があったので、トリガーイベントで取得ようとしたのですが実装できていません。
8
- 「ビヘイビアはある特定のイベントのみに対応する処理を書くもの」
9
- ということを知ったため、今回の場合もビヘイビアで実装した方がよいのでしょうか?
10
9
 
11
- また、ボタンの数が増えた場合、各ボタンに
12
-  <behaviors:Interaction.Triggers>
13
-    :
14
-  </behaviors:Interaction.Triggers>
15
- の部分を記載する必要があるため記載する量が増えると思うのですが、処理をまとめることはできるでしょうか?
16
10
 
17
11
  ### 該当のソースコード
18
12
 
@@ -45,6 +39,27 @@
45
39
  </StackPanel>
46
40
  ```
47
41
 
42
+ ```MainWindowViewModel
43
+
44
+ private ListenerCommand<RoutedEventArgs> menuBtnClick;
45
+ public ListenerCommand<RoutedEventArgs> MenuBtnClick => menuBtnClick ??= new ListenerCommand<RoutedEventArgs>(MenuBtnClickEvent);
46
+
47
+
48
+ private void MenuBtnClickEvent(RoutedEventArgs e)
49
+ {
50
+ var index = int.Parse(((Button)e.Source).Uid);
51
+
52
+ switch (index)
53
+ {
54
+ case 0:
55
+      //何か処理
56
+ break;
57
+ default:
58
+ break;
59
+ }
60
+ }
61
+ ```
62
+
48
63
  ### 補足情報(FW/ツールのバージョンなど)
49
64
  VisualStudio2019
50
65
  .Net Core3.0