2017-07-13 5 views
0

dans ma fenêtre Je veux utiliser ce codeWPF EventTrigger pour SourceInitialized

<i:Interaction.Triggers> 
    <i:EventTrigger EventName="SourceInitialized"> 
     <command:EventToCommand Command="{x:Static wpf:Window.InitializeWindowProcessHookCommand}" /> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

pour accrocher l'événement SourceInitialized à une commande sur ma classe que l'on appelle Window. J'utilise MvvMLight EventToCommand et si cela fonctionne parfaitement si j'utilise l'événement Loaded au lieu du SourceInitialized, donc nous pouvons supposer que la commande et la logique supplémentaire fonctionnent. En outre, en utilisant l'événement avec le code derrière fonctionne, mais je suis à la recherche d'une solution en utilisant EventTriggers (si possible).

Lorsque vous cherchez une solution, je suis tombé sur un sujet sur MSDN, qui est sur ce sujet précis, et les points OP déclare qu'il lié avec succès à l'événement Loaded, mais ne peut pas se lier à la SourceInitialized travailler

[et moi] veux écrire un semblable pour la source événement initialisé windows, mais vous pouvez trouver que Window.SourceInitializedEvent ne sont pas exposés

y at-il une solution possible à ce sujet?

Un grand merci en ce qui concerne

Répondre

1

L'événement se déclenche avant SourceInitialized votre déclencheur a une chance d'invoquer la commande si cela ne fonctionnera pas.

De même, cela n'a pas beaucoup de sens de déclencher la commande en utilisant un EventTrigger défini dans le balisage XAML juste pour ne pas avoir à le faire à partir du code-behind de la même vue. MVVM ne supprime pas le code lié à la vue des vues et il ne casse pas le motif pour invoquer la commande du code-behind de la même vue que votre balisage XAML.

Appelez donc la commande depuis un gestionnaire d'événements dans le code-behind ou vous abonnez à un autre événement.

Comme vous l'avez déjà remarqué, il est impossible de gérer l'événement SourceInitialized d'une fenêtre en utilisant un EventTrigger défini dans le balisage XAML de la même fenêtre.