首先,我正在使用 Flipview 构建一个 Windows 商店应用程序,并且我创建了一个自定义上下文指示器,类似于您可以在此博客上找到的第一个示例:http: //blogs.u2u.be/diederik/post/2012 /08/24/A-CXAML-FlipView-Context-Indicator-for-Windows-8.aspx 为了简短起见:我使用依赖属性将翻转视图绑定到用户控件。
我的问题:我用于上下文指示器的翻转视图数据绑定到 DefaultViewModel。由于我从 Web API 获取翻转视图中的图像,因此加载页面时 DefaultViewModel 中的集合将为空。成功加载图像后,我的 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 我的用户控件需要重新渲染?我知道在 WPF 中使用 FrameworkPropertyMedata.AffectsRender 是可能的,例如:
public static readonly DependencyProperty FlipviewProperty = DependencyProperty.Register("Flipview",typeof(Flipview),typeof(FlipviewIndicator), new FrameworkPropertyMetadata(new Color(), FrameworkPropertyMetadataOptions.AffectsRender));
但是,在 Windows 应用商店应用程序中,不再支持 FrameworkPropertyMedata,商店应用程序中是否有等价物?
提前致谢!