WPF 刷新静态资源

标签 wpf data-binding resources

我有一个 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/

相关文章:

c# - WPF ComboBox 自定义绑定(bind)

c# - 无法使用集合初始值设定项初始化类型 'PeopleModel',因为它未实现 'System.Collections.IEnumerable'

resources - 统一: Get resource path

java - 从 eclipse rcp 引用链接资源

wpf - 在 winform 或 wpf 中拖放

c# - 在 WPF 工具箱中找不到我的 winforms 控件

C#:更改 Entity Framework 的检索数据类型

.net - WPF说,数据项不为空时为空

javascript - 带边框半径的 knockout.js 数据绑定(bind)样式

Eclipse getResourceAsStream 返回 null