2010-01-21 2 views
0

Je suis une recrue en C# et je travaille sur un joueur avec une carte spécialisée. J'ai travaillé sur un controleur avec les boutons typiques, arrêtez la lecture, faites une pause et enregistrez. Le problème est que je ne sais pas comment créer les événements tels que depuis le code principal (Window) je pourrais gérer et appeler la fonction correspondante, puisque depuis le fichier usercontrol je ne peux accéder à aucun des éléments (bien sûr définis dans la fenêtre) J'ai besoin de faire fonctionner les choses, car elles ne sont pas accessibles.WPF usercontrol et les événements externes

Merci à l'avance

Meilleures salutations,

Oscar

Répondre

1

Votre UserControl a besoin d'exposer les propriétés appropriées, des méthodes et des événements, de sorte que la fenêtre peut interagir avec lui. Par exemple, votre UserControl peut déclarer un événement en pause, de sorte que la fenêtre peut répondre lorsque l'utilisateur met le contrôle en pause; ou il peut déclarer une méthode Play, afin que la fenêtre puisse démarrer le contrôle. Lorsque vous instanciez votre UserControl dans le fichier XAML de Windows, donnez-lui un nom, par ex.

<local:MyControl x:Name="myControl" /> 

Vous pouvez ensuite s'y référer de code-behind, par exemple:

myControl.Paused += MyControl_Paused; 
myControl.Play(); 

Pour créer l'API nécessaire, créer publiques propriétés, méthodes et événements sur le UserControl dans le code-behind classe. Vous dites que vous êtes une "recrue en C#", donc je ne sais pas de quelle direction vous avez besoin, mais à moins d'avoir besoin de la liaison de données ou du routage d'événements WPF, vous pouvez utiliser les propriétés, méthodes et événements C#/.NET habituels pour ce. La déclaration des propriétés, des méthodes et des événements en C# est largement couverte dans MSDN et dans la littérature. Si vous avez spécifiquement besoin d'aide pour travailler avec la liaison de données WPF ou le routage d'événements, laissez un commentaire décrivant votre difficulté spécifique et je mettrai à jour la réponse.

+0

Merci pour votre réponse, mais je pense que mon problème est plus important car mes méthodes play et pause ne peuvent être implémentées que dans l'objet window et les méthodes et objets nécessaires ne sont pas accessibles depuis mon user control ... ? Sincères salutations Oscar – Oscar

+0

Où sont accessibles les "méthodes et objets nécessaires"? * Quelque chose * doit les contenir: demandez à votre fenêtre de le faire. Par exemple, demandez à votre contrôle utilisateur de déclencher un événement 'PlayPressed'; la fenêtre peut le recevoir et appeler la méthode 'specialisedCard.Play()'. – itowlson