WPF刷新StaticResource

时间:2010-12-14 11:54:47

标签: wpf data-binding resources

我有一个ComboBox,它的ItemsSource绑定为

ItemsSource="{Binding Source={StaticResource documentTemplates}}"

documentTemplates

<ObjectDataProvider x:Key="documentTemplates"
                    ObjectType="{x:Type Core:DataHelper}"
                    MethodName="GetDocumentTemplates"/>

我遇到的问题是数据库中定义的文档模板可能会被应用程序的其他区域(或者实际上是其他用户)更改,因此我希望每次都有ItemsSource重新查询。目前,一旦资源被填充,它将永远不会重新查询。我假设这是因为它是一个StaticResource,但如果我将它交换为DynamicResource我得到

  

无法在'Binding'类型的'Source'属性上设置'DynamicResourceExtension'。 'DynamicResrouceExtension'只能在DependencyProperty或DependencyObject上设置

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:11)

按原样保留XAML,每当需要重新查询时,请在ObjectDataProvider上调用Refresh

(FindResource("documentTemplates") as ObjectDataProvider).Refresh();