前提・実現したいこと
ボタンに割り当てたUidの取得方法を教えてください。
ボタンを押下時にUIDを取得する処理をTriggerを使用して作成しました。
ボタンコントロールは複数あり、そのうちのいくつかに押下イベントを実装したいと考えています。
下記のソースのようにイベントトリガーの処理を記載したのですが、(Button)e.Source;の箇所でNullReferenceExceptionが発生します。
参考にしていたソースはコードビハインドに処理があったので、トリガーイベントで取得しようとしたのですが実装できていません。
該当のソースコード
xmal
1<StackPanel Margin="16,4"> 2 <Button 3 Name="btnA" 4 Width="200" 5 Height="50" 6 Margin="0,4" 7 Uid="0"> 8 <behaviors:Interaction.Triggers> 9 <behaviors:EventTrigger EventName="Click"> 10 <behaviors:InvokeCommandAction Command="{Binding BtnClick}"/> 11 </behaviors:EventTrigger> 12 </behaviors:Interaction.Triggers> 13 </Button> 14 <Button 15 Name="btnB" 16 Width="200" 17 Height="50" 18 Margin="0,4" 19 Uid="1"> 20 <behaviors:Interaction.Triggers> 21 <behaviors:EventTrigger EventName="Click"> 22 <behaviors:InvokeCommandAction Command="{Binding BtnClick}"/> 23 </behaviors:EventTrigger> 24 </behaviors:Interaction.Triggers> 25 </Button> 26</StackPanel>
MainWindowViewModel
1 2private ListenerCommand<RoutedEventArgs> menuBtnClick; 3public ListenerCommand<RoutedEventArgs> MenuBtnClick => menuBtnClick ??= new ListenerCommand<RoutedEventArgs>(MenuBtnClickEvent); 4 5 6private void MenuBtnClickEvent(RoutedEventArgs e) 7{ 8 var index = int.Parse(((Button)e.Source).Uid); 9 10 switch (index) 11 { 12 case 0: 13 //何か処理 14 break; 15 default: 16 break; 17 } 18}
補足情報(FW/ツールのバージョンなど)
VisualStudio2019
.Net Core3.0
Livet v3.2.1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/08/03 01:21
2021/08/03 06:07
退会済みユーザー
2021/08/03 07:30