2009-05-25 9 views
0

J'ai deux tabulations. L'utilisateur va entrer certaines données et les enregistrer sur le premier onglet. Le deuxième onglet répertorie les données enregistrées. Ce dont j'ai besoin, c'est lorsque l'utilisateur sélectionne le deuxième onglet avant d'enregistrer les données dans le premier onglet, une boîte de message de confirmation avec Oui, Non et Annuler doit être affichée. Si l'utilisateur clique sur le bouton Oui, les données doivent être sauvegardées et aller dans le deuxième onglet. S'il tape Non, les données n'ont pas besoin d'être sauvegardées et finalement, si Annuler est touché, l'onglet conservera toutes les données saisies. Comment puis-je faire cela?Confirmation lors de la commutation entre les onglets

Répondre

0

Pour garder les choses simples que vous pouvez faire dans le follwing le fichier code-behind.

Je créerais une classe de modèle des données que vous souhaitez afficher et modifier dans le contrôle WPF. Rendre le modèle implémenter les interfaces INotifyPropertyChanged et IEditableObject.

INotifyPropertyChanged vous permettra de se lier au modèle. IEditableObject vous permettra de fournir des fonctionnalités d'édition, de sauvegarde et d'annulation.

Le TabControl a un événement SelectionChanged vous pouvez gérer, qui vous permettra de détecter lorsque l'utilisateur change onglets, dans ce gestionnaire, vous pouvez utiliser System.Windows.MessageBox pour demander à l'utilisateur d'enregistrer etc System.Windows.MessageBox.Show(), retourne un MessageBoxResult objet que vous pouvez utiliser pour Déterminer quel bouton l'utilisateur a cliqué et effectuer l'action appropriée.

Ce n'est pas une excellente façon de faire les choses, mais cela reste simple, vous pouvez vouloir regarder dans certains modèles de conception WPF pour aider à la gestion de code.

Si vous avez besoin quoi que ce soit expliqué plus loin, il suffit de demander.

0

TPageControl Delphi a un événement OnChanging avec un paramètre "AllowChange". Je suppose qu'il y a quelque chose de similaire dans WPF.

1

Bien que je suis en désaccord avec la façon dont vous interrompez le flux de l'utilisateur d'un onglet à je vais à l'humour vous et répondre à la question:

Vous aurez besoin de deux choses pour y parvenir:

  1. l'événement qui se produit lorsqu'un onglet a été cliqué
  2. l'onglet précédent qui a été sélectionné (celui que vous venez)

le premier i tem:

Le contrôle onglet a une méthode de clic que vous pouvez vous abonner à:

Click=”MyTabButton_Click” 

Le deuxième élément:

Cette partie vous devrez le faire manuellement. Vous pouvez définir une variable dans l'événement click qui contient l'onglet sélectionné en dernier. Une fois que ce paramètre est défini, vous pouvez vérifier une variable (que vous avez précédemment définie) en fonction de l'onglet précédemment sélectionné. Vous pouvez ensuite faire toute votre validation.

Questions connexes