まず、Flipview を使用して Windows ストア アプリケーションを構築しています。このブログで見つけられる最初の例と同様のカスタム コンテキスト インジケーターを作成しました: http://blogs.u2u.be/diederik/post/2012 /08/24/A-CXAML-FlipView-Context-Indicator-for-Windows-8.aspx 簡単 に言うと、依存関係プロパティを使用して、フリップビューをユーザー コントロールにバインドします。
私の問題: コンテキスト インジケーターに使用するフリップビューは、DefaultViewModel にデータバインドされています。フリップビューの画像は Web API から取得するため、ページが読み込まれると、DefaultViewModel のコレクションは null になります。画像を正常にロードした後、私の DefaultViewModel["collection"] が満たされ、それに応じてフリップビューに画像が表示されます。ただし、コンテキスト インジケーターは変更されず、ページが再度読み込まれた場合にのみ正しい結果が表示されます。
私のユーザーコントロールの依存関係プロパティは次のとおりです。
public static readonly DependencyProperty FlipviewProperty =
DependencyProperty.Register("Flipview", typeof(FlipView), typeof(FlipviewIndicator), new PropertyMetadata(null, FlipView_Changed));
private static void FlipView_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
FlipviewIndicator indicator = d as FlipviewIndicator;
FlipView flipview = (e.NewValue as FlipView);
indicator.ItemsSource = flipview.ItemsSource;
Binding binding = new Binding();
binding.Mode = BindingMode.TwoWay;
binding.Source = flipview;
binding.Path = new PropertyPath("SelectedItem");
indicator.SetBinding(FlipviewIndicator.SelectedItemProperty, binding);
}
私の質問:依存関係プロパティに、ユーザー コントロールを再レンダリングする必要があることを UI に通知させる方法はありますか? FrameworkPropertyMedata.AffectsRender を次のように使用することで、WPF で可能であることがわかっています。
public static readonly DependencyProperty FlipviewProperty = DependencyProperty.Register("Flipview",typeof(Flipview),typeof(FlipviewIndicator), new FrameworkPropertyMetadata(new Color(), FrameworkPropertyMetadataOptions.AffectsRender));
ただし、Windows ストア アプリでは FrameworkPropertyMedata はサポートされなくなりました。ストア アプリに同等のものはありますか?
前もって感謝します!