Dans mon application, je veux créer une liaison pendant l'exécution, et chaque objet doit avoir une liaison séparée. Par exemple: J'ai deux copies d'un UserControl et chaque copie a la propriété Text et doit être liée à une source de données différente. Et comme la propriété de dépendance est statique, elle ne permettra pas d'avoir un DP par instance, un seul par classe. Donc, je me demande quelle est la meilleure approche pour y parvenir?Quelle est la meilleure approche pour créer une liaison lors de l'exécution?
Répondre
Pour travailler dynamiquement avec la liaison de données, consultez la classe statique BindingOperations.
En ce qui concerne l'utilisation de DP, je ne suis pas sûr de ce que vous demandez. Le DP lui-même est statique, mais la valeur d'un DP est associée par instance. Sinon, comment plusieurs instances de TextBox peuvent-elles avoir des valeurs de texte différentes? Les liaisons sont également spécifiques à chaque instance.
Vous avez raison. Désolé, je voulais dire une chose légèrement différente. Je voulais dire comment créer des DP non existants et les assigner par instance d'un objet? – Vitalij
Les deux différentes sources de données sont-elles de types différents? Ou sont-ils deux instances différentes du même type?
Je demande parce que la solution que vous demandez - créer une liaison à l'exécution - peut être inutilement complexe. Normalement, vous n'avez pas besoin de créer les liaisons au moment de l'exécution pour résoudre le problème que vous avez décrit. D'après ce que vous avez dit jusqu'à présent au sujet du problème, il semble qu'une solution beaucoup plus simple devrait fonctionner.
Il est extrêmement fréquent d'avoir plusieurs instances d'un contrôle utilisateur particulier, et que chaque instance soit liée à un objet source différent. Vous pouvez le faire avec des expressions de liaison de données normales dans Xaml. L'astuce consiste à s'appuyer sur le DataContext pour déterminer quel contrôle utilisateur particulier utilise comme source. Par exemple:
<my:MyUserControl DataContext="{Binding Path=Source1}" />
<my:MyUserControl DataContext="{Binding Path=Source2}" />
Cela va créer deux instances d'un contrôle utilisateur personnalisé, MyUserControl, et toutes les liaisons dans le premier attacheront à tout objet était Source1, tandis que le second utilisera Source2. Donc, si MyUserControl.xaml contient quelque chose comme ceci:
<TextBlock Text="{Binding Path=Name}" />
alors qui va se lier à la propriété Nom de deux objets de différentes sources dans les deux instances de contrôle utilisateur différents.
Cela répond à votre exigence stipulée que chaque contrôle utilisateur "doit être lié à une source de données différente".
Dans mon cas, l'utilisateur spécifie le chemin de liaison, en utilisant l'interface de glisser-déposer, puis je récupère par programmation la liaison et réaffecter à un contrôle utilisateur. – Vitalij
- 1. Quelle est la meilleure approche pour créer un journal d'activité?
- 2. Quelle est la meilleure approche de recherche?
- 3. Quelle est la meilleure approche pour la propriété readonly
- 4. Quelle est la meilleure approche pour utiliser JasperReports?
- 5. Quelle est la meilleure approche d'automatisation des tests pour WatiN
- 6. Quelle est la meilleure approche pour implémenter des styles CSS?
- 7. Quelle est la meilleure approche pour créer les mêmes applications Android pour un public différent?
- 8. Quelle est la meilleure approche pour créer des applications Windows visuellement attrayantes?
- 9. Quelle est la meilleure approche pour créer des requêtes LINQ dynamiques?
- 10. Quelle est la meilleure approche pour faire une application web pour dessiner et modifier une image?
- 11. Quelle approche pour stocker les données statiques est meilleure?
- 12. Meilleure approche pour une application WPF multipage
- 13. Quelle est la meilleure pratique pour charger une action de liaison/liaison dans un fichier Flash?
- 14. Quelle est la meilleure façon d'effectuer une concaténation de chaîne pour créer une URL dynamique?
- 15. Quelle est la meilleure approche pour interpréter une entrée de texte à des fins de géocodage?
- 16. Quelle est la meilleure approche pour comparer une collection avec une autre (architecturellement parlant)?
- 17. Quelle est la meilleure approche pour calculer une formule qui change de valeur chaque jour?
- 18. Quelle est la meilleure approche pour la détection de collision 2D sur l'iPhone?
- 19. Meilleure approche pour la réindexation
- 20. Lors de la conception d'ORM, quelle est la meilleure approche pour représenter la relation, en termes de performances?
- 21. Quelle est la meilleure façon de créer une méthode d'usine lors de l'utilisation de WCF?
- 22. Quelle est la meilleure approche pour auditer une grande application web java/j2ee?
- 23. Quelle est la meilleure approche de déploiement pour les applications WPF avec base de données locale?
- 24. Quelle est la meilleure approche pour attendre des éléments sur une page Waitforcomplete() ou system.threading.thread.sleep()
- 25. Quelle est la meilleure approche pour manipuler les actifs dans Drupal à partir de l'application .Net?
- 26. Quelle est la meilleure façon de créer des déploiements ClickOnce
- 27. Quelle est la meilleure approche pour utiliser ajaxform avec la validation jQuery?
- 28. Quelle est la meilleure approche pour stocker xml temporairement du côté client?
- 29. Quelle est la meilleure approche pour utiliser la musique et les sons dans AS3?
- 30. Quelle est la meilleure approche pour gérer les délais d'attente de session dans struts2
Sans vouloir vous offenser, je me demande comment vous allez devoir créer dynamiquement une liaison. –
L'utilisateur lui-même doit créer des liaisons entre l'interface utilisateur et la source de données. Au cours de la création de l'application, je ne sais pas quel DP exact sera nécessaire et quel objet est lié à quelle source de données. Donc j'avais besoin de les créer dynamiquement. – Vitalij