2010-11-15 3 views
0

Exigence: 1. Affichez une liste de tous les types de référence dans une zone de liste déroulante. (par exemple, journal, pages jaunes, client) 2. Lors du choix du client, une fenêtre contextuelle s'affiche dans laquelle ils peuvent rechercher des clients dans le système. 3. Dans la fenêtre contextuelle, l'utilisateur peut choisir un client. 4. Popup sera rejeté et le nom du client sera rempli dans la liste déroulante.Lier des objets de types différents à une zone de liste déroulante dans WPF

J'ai presque terminé la mise en œuvre, dans laquelle les exigences 1 à 3 sont remplies. Cependant, je suis coincé avec le numéro 4. La raison en est que, la liste déroulante est liée à referraltype objets. Cependant, l'élément choisi dans la popup est de type "client". À l'heure actuelle, je ne fais que afficher le client choisi dans un bloc de texte distinct. Cependant, le client souhaite qu'il soit affiché dans le cadre de la liste déroulante elle-même.

Je ne sais pas comment cela pourrait être fait.

Toute aide serait appréciée.

Merci Bala

+0

Votre problème est de savoir comment lier différents types à une zone de liste déroulante? parce qu'il semble que tout fonctionne bien! juste peut-être vous avez besoin d'un 'Convertor' ou peut-être' Interface' –

+0

Eh bien, je lie les referraltypes (qui a referraltypeid et referraltypename) à la liste déroulante. Mais, maintenant je dois lier un objet de type client qui a été choisi dans le popup (montré seulement si referraltype est client). Je n'ai pas été capable de le faire tout en montrant les autres options dans la combobox. Je ne sais pas si c'est même possible. – Bala

Répondre

0

Vous pourriez avoir un BaseReferralTypeViewModel qui tous NewspaperViewModel, YellowPagesViewModel et ClientViewModel héritent. Dans la zone de liste déroulante, les ressources dans xaml déclarent DataTemplates qui décrivent comment afficher ces types dans la zone de liste déroulante. Dans le cas des deux premiers types c'est probablement juste un bloc de texte. Dans le cas de ClientViewModel, créez une instance mais ne l'initialisez pas avec des données client. DataTemplate peut détecter cela et afficher simplement le type de référence. Une fois que ClientViewModel est initialisé avec les données client par le popup, le DataTemplate le détectera et affichera le nom.

Questions connexes