2010-12-14 43 views
4

J'ai un ComboBox qui a ses ItemsSource lié commeWPF Actualiser StaticResource

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

Où documentTemplates est

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

Le problème que j'ai est que les modèles de document définis dans la base de données peuvent être modifiées par d'autres zones de l'application (ou en fait par un autre utilisateur) et donc je veux avoir la requery ItemsSource à chaque fois. À l'heure actuelle, une fois que la ressource a été peuplée, elle ne se produira jamais. Je suppose que cela est parce qu'il est un StaticResource, mais si j'échange cela pour un DynamicResource je reçois

A « DynamicResourceExtension » ne peut pas être mis sur la propriété « Source » de type « Reliure ». A « DynamicResrouceExtension » ne peut être réglé sur une DependencyProperty ou un DependencyObject

Comment dois-je aller sur la fixation de ce?

Répondre

11

Gardez votre XAML tel quel et chaque fois qu'une requery est nécessaire, appelez Refresh sur le ObjectDataProvider.

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