0

タッチ デバイス用に XAML/C# で Windows 8.1 アプリケーションを開発していて、次のような問題が発生しました。タイルとしてスタイル設定されたアイテムのリストが表示される GridView があります。これらのタイルのいずれかをタップすると、GridView で次のプロパティを使用して、その項目の詳細ビューが表示される別のページが開きます。

IsItemClickEnabled="True"
ItemClick="itemGridView_ItemClick"

ここで、特定のタイルを保持しているときに Windows がスタート画面で使用する動作を模倣したいと思います。特定のタイルが選択され、AppBar が表示され、その特定の項目に対するいくつかのコマンドが提供されます。コマンドは各アイテムで常に同じですが、明らかにアイテムは異なります。項目が選択されていない場合、AppBar には 1 つの項目に関連しないさまざまなコマンドが表示されます。画面の最初のロードでは、何も選択されていません。

どうすればこの動作を達成できますか?

4

1 に答える 1

4

これを行うためのよりエレガントな方法があるかもしれませんが、私はこの方法を提供し、動作などとして作成することができます。

次のように、グリッドビューで Holding イベントを処理する必要があります。

private void gridView_Holding(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
{
    if (e.HoldingState == HoldingState.Completed)
    {
        gridView.IsCustomising = true;
        var heldItem = (e.OriginalSource as FrameworkElement).DataContext as Event;
        gridView.SelectedItem = heldItem;
    }
    e.Handled = true;
}

NB: すぐに使用できるグリッドビューを拡張して、win 8.1 のようなカスタマイズ スタイルを表示しました。NB: この例のグリッドビューのアイテムのタイプはイベント タイプですが、あなたのアイテムはバインドしたタイプになります。

また、グリッドビューでアイテムが選択されたときにどのコマンドが表示されるか、ビューモデルを介してアプリバーとバインドアップを作成する必要があることも明らかです。

それが役立つことを願っています。

于 2014-05-01T05:52:47.537 に答える