J'utilise Elementhost pour héberger la commande utilisateur WPF dans un formulaire Windows. Je veux savoir comment référencer la forme parent dans le contrôle WPF. P>
3 Réponses :
Pourquoi ne pas créer cette relation par programme? I.e. Lorsque vous ajoutez votre commande d'utilisateur WPF dans un élément d'élément, définissez la propriété Tag de la commande utilisateur sur l'instance d'hôte de l'élément. P>
Colin E. P>
Merci de me pointer dans la bonne direction! Après avoir lu toutes ces suggestions sur la manière d'utiliser des commandes ou des événements pour gérer quelque chose qui devrait être si simple, j'ai fini par mettre une variable nulle de ma forme parent dans l'UserControl et la définir à Null. Chaque fois que je crée une instance de l'UserControl, j'ai défini la variable à la fenêtre Création. Simple!
Voici un moyen de le faire, à partir d'un document WPF (dans ce code UserControl code> qui a un bouton contient un bouton: formulaires code> est un alias pour system.windows.forms code>) p> p>
Fonctionne un traitement merci. Je vérifiais cependant que NULLS.
Je vous suggère p>
WPF Child Control Code>, LI>
- Inscrivez-vous à cet événement de parent lors de sa création, LI>
- soulevez cet événement chaque fois que vous voulez des données de la commande enfant, li>
- Faites des données de retour de contrôle parent en définissant des valeurs dans la personnalisation
eventargs code> objet. li>
ul>
L'accès à un contrôle parent doit être évité à moins que certains scénarios spéciaux. Propagez toujours des événements au conteneur parent des enfants lorsque vous souhaitez configurer la communication de l'enfant au parent. P>
Pourriez-vous donner une raison plus détaillée pourquoi ne pas "accéder à un contrôle parent doit être évitée sauf si des scénarios spéciaux"
Cela semble très prometteur, pourriez-vous me donner un lien ou simplement exemple de ce que vous entendez en exposant un événement (je pense que vous voulez dire un gestionnaire d'événements personnalisé?) Et l'enregistrer avec le parent? Donc, je suppose que cela signifie que vous enregistrez l'événement lors de la phase initiale?