コマンドとタップ イベントの両方にバインドできる ApplicationBar が必要です (タップ イベントは UI 関連のものに必要であり、モデルでは処理できません)。
NuGet の BindableApplicationBar を試していますが、コマンド バインディングは正常に機能しますが、タップ イベントを取得する方法がありません。
DataContext
バインディングを機能させるために を変更していますが、イベントはコード ビハインドで管理する必要があることに注意してくださいTap
(これが問題の主な原因であるかどうかはわかりません!)
バーの xaml は次のとおりです。
<bindableApplicationBar:Bindable.ApplicationBar>
<bindableApplicationBar:BindableApplicationBar>
<bindableApplicationBar:BindableApplicationBarButton
Text="{Binding MainSearchText}"
IconUri="Assets/AppBar/feature.search.png"
Command="{Binding NavigateCommand}"
Name="SearchBarButton" />
<bindableApplicationBar:BindableApplicationBarButton
Text="{Binding Path=LocalizedResources.AppBarSettingsText, Source={StaticResource LocalizedStrings}}"
IconUri="Assets/AppBar/feature.settings.png"
Tap="SettingsButton_OnTap" />
<bindableApplicationBar:BindableApplicationBar.MenuItems>
<bindableApplicationBar:BindableApplicationBarMenuItem
Text="{Binding Path=LocalizedResources.AppBarAboutText, Source={StaticResource LocalizedStrings}}"
Tap="Info_OnTap" />
</bindableApplicationBar:BindableApplicationBar.MenuItems>
</bindableApplicationBar:BindableApplicationBar>
</bindableApplicationBar:Bindable.ApplicationBar>
.xaml.cs ファイルにあるハンドラーの 1 つを次に示します。
private void Info_OnTap(object sender, GestureEventArgs e)
{
_about.Show();
Debug.WriteLine("INFO ON_TAP");
}
をクリックしても「INFO ON_TAP」行が書き込まれませんMenuItem
。
どうしたの?