2010-04-28 26 views
1

J'ai une telle situation - je voudrais construire le contrôle de la chronologie. J'ai donc UserControl et ItemsControl dessus (chaque ligne représente une personne). Le ItemsControl contient un autre ItemsControl en tant que ItemsControl.ItemTemplate - il montre par exemple. événements pour la personne organisée par date de l'événement. Il ressemble donc à une sorte de grille avec des dates comme en-têtes de colonne et par exemple. peuples comme en-têtes de rangée. ........................ |. 2010.01.01 ..... 02/01/2010 ..... 2010.01.03
Adam Smith .... | ...... [un événement n ° 1] .. ... [un événement # 2] ......Silverlight - comment rendre une image à partir d'un contrôle utilisateur lié aux données non visibles?

John Dow ....... | ... [un événement # 3] ..... [un événement # 4 ] .........

Je peux avoir beaucoup de personnes (ItemsControl # 1 - 100-200 articles) et beaucoup d'événements ont eu lieu par un jour (1-10-30 événements par personne dans un jour)

le problème est que lorsque l'utilisateur fait défiler ItemsControl # 1/# 2 il est arrivé trop de sloooooowwww en raison de beaucoup d'éléments devraient être rendus en une fois (comme je l'ai fait par exemple. un peu de zones de texte et d'autres éléments dans la description de l'événement particulier)

Question # 1 - comment puis-je l'améliorer? Peut-être quelqu'un connaît une meilleure façon de construire un tel contrôle de l'utilisateur? Je dois mentionner que j'utilise le panneau virtuel personnalisé, basé sur une implémentation de panneau virtuel personnalisée trouvée quelque part dans Internet ...

Question # 2 - Je voudrais faire l'image avec l'aide de WriteableBitmap et rendre contrôle des données liées à l'image et pour montrer l'image au lieu de beaucoup d'éléments. Le problème est que j'essaie de rendre invisible le contrôle lié aux données (créé dans le code) et que la propriété width/Height est égale à zéro (donc rien rendu) même si j'utilise Dispatcher.BeginInvoke (() => {.. ..} approche Comment puis-je résoudre ce

Merci beaucoup pour vous aider à

Répondre

2

a propos de la question n ° 1:!. la virtualisation Nested ItemsControl est délicate le problème est que même si le contrôle externe prend en charge la virtualisation, la Au lieu d'héberger un ItemsControl dans un autre, fusionnez toutes les données dans la même liste, en utilisant le style pour simuler la hiérarchie, ou bien trouvez un contrôle DataGrid commercial qui prend en charge la virtualisation imbriquée.

+0

Merci beaucoup - Je vais essayer! – MagicMax