2009-07-22 5 views
2

Je fais des choses dans WPF.WPF Load Control question

J'ai un ComboBox avec beaucoup Types. Après avoir sélectionné un type concret, je veux Charger un UserControl particulier (avec de nombreux TextBoxes etc.) respectant le type dans une région définie sur ma fenêtre WPF.

Comment faire? Y at-il quelque chose comme LoadControl() et le charger dans un PlaceHolder dans ASP.NET? Et quelle est la meilleure façon de le faire?

Merci.

Répondre

2

Pour chaque type, vous devez créer un . Voir Different item template for each item in a WPF List pour plus d'informations.

+0

Eh bien, je peux définir plusieurs DataTemplate et avec le sélecteur décider, pour quel élément quel modèle afficher. Merci! –

+0

Mais il y a un autre problème. Cette zone de liste déroulante se trouve directement dans le modèle, car elle fait partie de cet élément. Cela signifie que lors de l'ajout, vous choisissez un élément de cette liste déroulante et l'élément se modifie lui-même en un autre DataTemplate. Mais je veux préserver l'état de ce ComboBox. Mais après avoir chargé un nouveau DataTemplate, il sera perdu. Une idée? –

+0

Il semble bizarre que le ComboBox fasse partie du DataTemplate. Vous dites dans votre question qu'un UserControl doit être affiché dans une 'région définie' de la fenêtre. Il devrait être dans les ressources de cette région définie que vous devez définir différents modèles pour chaque type. De plus, vous n'avez pas besoin de 'charger' n'importe quel UserControl, cela sera fait automatiquement pour vous. S'il y a quelque chose que je n'ai pas reçu, veuillez fournir un code pour mieux illustrer votre problème. –

1

Qu'en est-:

object o = Activator.CreateInstance(type); 
myUserControl.PubliclyExposedContainer.Content = o; 

Pas vraiment sûr pourquoi vous allez à la peine de créer un DataTemplate pour chaque type.