質問編集履歴
1
質問の内容を一部変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
WPF Trigger
|
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
|