1

コマンドとタップ イベントの両方にバインドできる 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

どうしたの?

4

2 に答える 2

0

これは、BindableApplicationBar の使用方法ではありません。BindableApplicationBarButton は FrameworkElement から継承し (したがって、Tap イベントを持ちます)、DataContext とバインディングをサポートします。BindableApplicationBarButton がタップされることはなく、BindableApplicationBarButton が画面上に表示されることもないため、Tap イベントは発生しません。イベント - クリック)。BindableApplicationBarMenuItem についても同様です。BindableApplicationBar はコマンドで最適に機能します。

ソースのコメントで詳細を参照してください: BindableApplicationBar @ codeplex

以下に (一部の) オプションを示します。

  • BindableApplicationBarButton の Command プロパティを使用して、ボタンのクリックに反応する
  • xaml で BindableApplicationBar を定義した後、コード ビハインドで作成した ApplicationBarIconButtons の Click イベントに接続します。
  • BindableApplicationBar コード (オープン ソース) を使用し、シーンで最高のエクスペリエンスを得るために変更します
于 2013-10-04T20:44:46.373 に答える