Dans System.Windows.Forms.Button, il existe une propriété DialogResult, où se trouve cette propriété dans le System.Windows.Controls.Button (WPF)?Où est Button.DialogResult dans WPF?
Répondre
Il n'y a pas Button.DialogResult intégré, mais vous pouvez créer votre propre (si vous le souhaitez) à l'aide d'une simple propriété attachée:
public class ButtonHelper
{
// Boilerplate code to register attached property "bool? DialogResult"
public static bool? GetDialogResult(DependencyObject obj) { return (bool?)obj.GetValue(DialogResultProperty); }
public static void SetDialogResult(DependencyObject obj, bool? value) { obj.SetValue(DialogResultProperty, value); }
public static readonly DependencyProperty DialogResultProperty = DependencyProperty.RegisterAttached("DialogResult", typeof(bool?), typeof(ButtonHelper), new UIPropertyMetadata
{
PropertyChangedCallback = (obj, e) =>
{
// Implementation of DialogResult functionality
Button button = obj as Button;
if(button==null)
throw new InvalidOperationException(
"Can only use ButtonHelper.DialogResult on a Button control");
button.Click += (sender, e2) =>
{
Window.GetWindow(button).DialogResult = GetDialogResult(button);
};
}
});
}
Cela vous permettra d'écrire:
<Button Content="Click Me" my:ButtonHelper.DialogResult="True" />
et obtenir un comportement équivalent à WinForms (en cliquant sur le bouton provoque la boîte de dialogue pour fermer et retourner le résultat spécifié)
Il n'y a pas de Button.DialogResult
dans WPF. Il suffit de régler la DialogResult
du Window
vrai ou faux:
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
@Shimmy: Cela devrait être accepté réponse en fait .. – Mangesh
Assurez-vous que vous avez montré le formulaire en utilisant ShowDialog
plutôt que Show
. Si vous faites ce dernier, vous aurez l'exception suivante a soulevé:
InvalidOperationException était non gérée
DialogResult peut être réglée seulement après la fenêtre est créé et présenté comme dialogue.
MessageBoxResult result = MessageBox.Show("","");
if (result == MessageBoxResult.Yes)
{
// CODE IN HERE
}
else
{
// CODE IN HERE
}
- 1. Commandes standard WPF - Où est la sortie?
- 2. Où est JConsole dans Leopard
- 3. Où est System.CodeDom.Compiler.CompilerParameters dans Silverlight?
- 4. Où est gsl_cdf_beta_Pinv() dans PyGSL?
- 5. Où est all_nested_table_cols dans 9i?
- 6. Où est Actionsettings dans TextRange2?
- 7. Je veux le moment où une clé est "Down" dans l'événement PreviewKeyDown dans WPF
- 8. NavigationWindow - Où est-ce?
- 9. où la méthode de gestionnaire d'événements magasin dans WPF - MVVM
- 10. Où trouver l'état du contrôle d'image WPF?
- 11. convertisseurs WPF: où la culture proviennent de
- 12. Où puis-je trouver un TextBox masqué gratuit dans WPF?
- 13. Où est QWebView?
- 14. Où est l'exemple MiniBrowser
- 15. où est défini Enum.values ()?
- 16. Où est erase_if?
- 17. Où est HttpRequestBase?
- 18. où est user.config?
- 19. Où est l'appel TickCount()?
- 20. UIComboBox ... Où est-ce?
- 21. Où est System.Windows.Threading.DispatcherTimer?
- 22. où est gacutil.exe?
- 23. où est onet.xml?
- 24. Où est la fuite?
- 25. Où est Microsoft.Scripting.Core.dll?
- 26. Où est "CDO.Appointment"
- 27. où est $ PATH défini dans xcode?
- 28. Où est le cacao-net dans Mono
- 29. Où est l'erreur dans ma requête SQL?
- 30. Où est System.Linq dans .NET 4.0?
J'ai appris de nouvelles choses dans herer, ce attatching, eventho je ne vais pas l'utiliser dans ce cas, bien sûr sera utile! merci beaucoup – Shimmy
Je n'ai jamais entendu parler de la fonction GetWindow, c'est incroyable! – Shimmy
Une excellente solution, rendue plus grande dans sa simplicité. –