2010-01-06 13 views
1

J'ai une application Silverlight qui utilise un service Web pour créer des documents XPS. Les modèles de document sont créés en tant que contrôles XAML dans une bibliothèque de classe WCF. Pour lier les données réelles à mon modèle de document, j'ai défini la propriété DataContext du contrôle. Le problème est que lorsque je regarde mon XPS, les images (je lie les contrôles Source de mon Image à une propriété de chaîne qui représente l'URL de mon image) ne sont pas affichées comme si elles n'étaient pas chargées. Comment puis-je résoudre ce problème? Merci!Problème avec la génération de documents XPS avec des images dans une bibliothèque de classe WCF

+0

cette URL est-elle valide? Si vous essayez de l'ouvrir dans un navigateur, est-ce qu'il apparaît? –

+0

oui l'URL est valide –

Répondre

1

L'infrastructure de liaison a probablement besoin d'être poussée car vous travaillez en dehors de l'utilisation prévue de WPF.

Essayez d'ajouter le code suivant après avoir réglé le datacontext:

control.DataContext = DataContext; 

// we need to give the binding infrastructure a push as we 
// are operating outside of the intended use of WPF 
var dispatcher = Dispatcher.CurrentDispatcher; 
dispatcher.Invoke(
    DispatcherPriority.SystemIdle, 
    new DispatcherOperationCallback(delegate { return null; }), 
    null); 

Je couvre cela et d'autres choses XPS liées dans ce blog post.

+0

Si j'ai un 'UserControl' qui se rend correctement après un événement spécifique (par exemple' myItem.Loaded'), le bidouillage dispatcher ne fonctionne pas! Comment puis-je lui dire d'attendre que l'événement se déclenche? – l33t