我有一个 ComboBox,它的 ItemsSource 绑定(bind)为
ItemsSource="{Binding Source={StaticResource documentTemplates}}"
文档模板在哪里
<ObjectDataProvider x:Key="documentTemplates"
ObjectType="{x:Type Core:DataHelper}"
MethodName="GetDocumentTemplates"/>
我遇到的问题是数据库中定义的文档模板可能会被应用程序的其他区域(或者实际上是另一个用户)更改,所以我希望每次都重新查询 ItemsSource。目前,一旦资源被填充,它将永远不会重新查询。我认为这是因为它是一个静态资源,但是如果我将它换成一个动态资源,我会得到
A 'DynamicResourceExtension' cannot be set on the 'Source' property of type 'Binding'. A 'DynamicResrouceExtension' can only be set on a DependencyProperty or a DependencyObject
我应该如何解决这个问题?
最佳答案
保持 XAML 原样,无论何时需要重新查询,请调用 Refresh在 ObjectDataProvider 上。
(FindResource("documentTemplates") as ObjectDataProvider).Refresh();
关于WPF 刷新静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438876/