2010-12-14 3 views
4

У меня есть ComboBox, который имеет это ItemsSource связано, какWPF Обновить StaticResource

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

Где documentTemplates является

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

У меня есть проблема в том, что шаблоны документов, определенные в базе данных может быть изменена другие области приложения (или, действительно, другим пользователем), и поэтому я хочу, чтобы каждый раз запрашивал ItemsSource. На данный момент, как только ресурс будет заселен, он никогда не будет требовать. Я предполагаю, что это происходит потому, что это StaticResource, но если я поменять это на DynamicResource я

«DynamicResourceExtension» А не может быть установлен на имущество «источник» типа «Binding». A «DynamicResrouceExtension» может быть установлен только на DependencyProperty или DependencyObject

Как мне это исправить?

ответ

11

Сохраните свой XAML как есть, и всякий раз, когда требуется запрос, вызовите Refresh на ObjectDataProvider.

(FindResource("documentTemplates") as ObjectDataProvider).Refresh(); 
Смежные вопросы