0

作成中のアプリケーションで既定の Windows ストア テンプレートを使用しています。

リストビューの最初の項目を強調表示したい。カスタム itemtemplateSelector を使用してこれを達成しました。

私が抱えている問題は、ページがスナップされたときにスタイルを変更する必要があることです。

「デフォルト」テンプレートはテンプレート セレクターを使用しないため、visualstate ストーリーボードで itemTemplate を変更するだけです。

このコードを修正して itemTemlateSelector (storyboard.TargetProperty="itemTemplateSelector") を変更すると、ランタイム エラーが発生します。

次に、ApplicationViewState を考慮するように DatatemplateSelector クラスを修正しようとしました。これは、ページがスナップ/全画面表示の状態で読み込まれる場合に機能しますが、アプリケーションのビュー状態が変更されたときに使用されるテンプレートは変更されません。

リストビューを「リフレッシュ」してテンプレートを再適用する方法はありますか?

これを行う別の方法はありますか?

ヘルプ/アドバイスをありがとう。

4

1 に答える 1

0

サンプル テンプレートでは、Snapped 用とその他用の 2 つの異なるリストを使用します。これは非常に簡単な方法です。

この次のものはテストしていませんが、ページが LayoutAwarePage の場合は、DeterminVisualState メソッドでセレクターを変更できます。

    protected override string DetermineVisualState(ApplicationViewState viewState)
    {
        if (viewState == ApplicationViewState.Snapped)
        {
            // change to snapped selector
        }
        else
        {
            // change to regular selector
        }
        return base.DetermineVisualState(viewState);
    }
于 2012-11-05T07:35:32.717 に答える