Question

OpenFileDialog s ' ShowDialog renvoie une valeur booléenne nullable, mis à vrai si le utilisateur a cliqué sur OK ou faux s'il a cliqué sur Annuler. Quand faut-il revenir null? La documentation ne dit pas.

Était-ce utile?

La solution

Ceci est indiqué dans les questions liées ci-dessous, mais je vais mentionner ici que programmation WPF (Chris Sells, Ian Griffiths) dit:

  

ShowDialog retourne toujours vrai ou   faux. ... seulement après une boîte de dialogue a   été montré, mais avant qu'il ne soit fermé   est DialogResult nulle.

Question similaire: A quand ShowDialog () return null

: Pourquoi DialogResult un bool annulable dans WPF

Autres conseils

Selon le réflecteur .NET , Microsoft.Win32.OpenFileDialog.ShowDialog est mis en oeuvre par une classe de base , Microsoft.Win32.CommonDialog. Cette mise en œuvre a une seule clause de retour:

return new bool?(this.RunDialog(activeWindow));

RunDialog retourne un bool, pas bool?.

bool? est juste un C # raccourci pour System.Nullable<bool>. Le System.Nullable<bool>, selon réflecteur de nouveau, définit la valeur de le nullable à son paramètre, et marque sa propriété hasValue comme vraie.

Alors ... vous ne devriez jamais obtenir un résultat de null. Un test rapide confirme que la fermeture de la boîte de dialogue sans annuler (bouton rouge x) retourne en effet une valeur false, pas null.

Windows Forms version de OpenFileDialog retourne un DialogResult, qui a une plus large éventail de valeurs .

Je pense que retourne OpenFileDialog bool? être compatible avec d'autres boîtes de dialogue WPF qui peuvent réellement renvoyer un résultat nul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top