Ne peut pas définir de DialogResult dans WPF

Je montre une fenêtre WPF utilisant ShowDialog() de la fenêtre appelante. La fenêtre s'ouvre et elle est modale comme prévu. Cependant, dans mon OK et Annuler bouton cliquez sur les événements dans la fenêtre de dialogue que j'ai mis ce.DialogResult = vrai (ou faux), respectivement, et la valeur n'a pas obtenir de l'ensemble. La fenêtre se ferme comme prévu, mais DialogResult est toujours null.

Est-ce un bug dans WPF? Ou est-il une raison pour laquelle la propriété DialogResult ne peut pas être définie, mais ne jetez pas une exception? La fenêtre n'est pas hébergé dans un navigateur.

Code dans la fenêtre appelante:

Window2 win = new Window2();
bool? result = win.ShowDialog();
if (result.HasValue && result.Value) {
   //never gets here because result is always null
}

Code dans la fenêtre de dialogue:

this.DialogResult = true;
  • Comment vous mettez-vous DialogResult à un bool? Il devrait être un enum, comme DialogResult.OK
  • Non, en WPF, si vous ouvrez un objet de la Fenêtre avec ShowDialog() la méthode, vous pouvez définir DialogResult à une valeur booléenne.
  • Pouvez-vous poster le contenu de votre <Window ... /> définition ici? C'est peut-être quelque chose de particulier à la façon dont vous avez l'initialisation de la fenêtre.
  • Qu'est ce que Window2? Avez-vous tirer de votre propre Fenêtre de la classe à partir de la Fenêtre? Ensuite, c'est probablement quelque chose de mal dans votre Window2 de classe, vous devez poster le code source de cela.
  • Je viens de tomber sur ce problème et il semble être un bug lors de la dérivation à partir de votre propre classe de Fenêtre. Vous ne savez pas comment le résoudre.
InformationsquelleAutor quinnapi | 2009-05-22