2016-06-30 2 views
0

je suis tombé sur le problème de ne pas être en mesure d'utiliser une méthode de fenêtres comme une propriété à l'intérieur de l'objet initialiseur:utiliser l'objet qui est en cours d'initialisation en tant que paramètre

var window = new DialogWindow 
    { 
    DataContext = new YesNoDialogViewModel() 
    { 
     DialogMessage = confirmation.Content as string, 
     DialogTitle = confirmation.Title, 
    } 
    }; 

    (window.DataContext as YesNoDialogViewModel).CloseWindowCommand = new ActionCommand(window.Close); 

Je wan't de faire quelque chose comme ceci:

var window = new DialogWindow 
    { 
    DataContext = new YesNoDialogViewModel() 
    { 
     DialogMessage = confirmation.Content as string, 
     DialogTitle = confirmation.Title, 
     CloseWindowCommand = new ActionCommand(window.Close) 
    } 
    }; 

Cependant, je ne peux pas sembler figurer dehors (new ActionCommand(window.Close) ne marche pas compiler, ne peut pas utiliser la fenêtre avant sa déclaration).

Y a-t-il un bidouillage ou une solution de rechange pour simplement ajouter la référence au vide de toute façon?

+0

@MatteoUmili oui, je me suis dit. Merci pour le lien. Ce n'est pas possible apparemment. – Mafii

Répondre

1

Vous ne pouvez pas le mettre dans l'initialiseur d'objet car ActionCommand() utilise en argument l'objet qui n'est pas encore créé - window ->window.Close().