Créer un événement à regarder pour un changement de variable
Disons simplement que j'ai:
public Boolean booleanValue;
public bool someMethod(string value)
{
//Do some work in here.
return booleanValue = true;
}
Comment puis-je créer un gestionnaire d'événement qui se déclenche lorsque le booleanValue a changé? Est-il possible?
Est-ce winform, ASP.Net ou Silverlight/WPF?
C'est dans un Windows 8 application de style Metro. Mais je serais heureux d'accepter une réponse pour autre chose en C# (autres que Silverlight)
C'est dans un Windows 8 application de style Metro. Mais je serais heureux d'accepter une réponse pour autre chose en C# (autres que Silverlight)
OriginalL'auteur Arrow | 2013-01-07
Vous devez vous connecter pour publier un commentaire.
Éviter d'utiliser des champs publics comme une règle générale. Essayez de les garder privé autant que vous le pouvez. Ensuite, vous pouvez utiliser un wrapper bien la cuisson de votre événement. Voir l'exemple:
Qui est un simple, "natif" de façon à obtenir ce dont vous avez besoin. Il ya d'autres façons, même offert par le .NET Framework, mais l'approche ci-dessus est juste un exemple.
OriginalL'auteur Mir
INotifyPropertyChanged est déjà défini pour indiquer si une propriété est modifiée.
Envelopper votre variable de propriété et d'usage
INotifyPropertyChanged
interface.OriginalL'auteur Tilak
Modifier l'accès de la BooleanValue privé et à seulement permettent de changer à travers une méthode pour plus de cohérence.
Feu de votre événement personnalisé dans la méthode
.
Option 2: Faire un propriété et le feu de l'événement dans le setter
Edit: Comme d'autres l'ont dit
INotifyPropertyChanged
est la .NET standard façon de le faire.OriginalL'auteur lahsrah
Peut-être jeter un oeil à la
INotifyPropertyChanged
interface. Vous êtes lié à venir à travers elle, l'utiliser à nouveau à l'avenir:MSDN: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx
OriginalL'auteur Simon Whitehead
Dans votre classe avec le bool procédure de propriété:
OriginalL'auteur Jeremy Thompson
Non, il n'est pas possible* recevoir des notifications concernant les changements dans la valeur d'une variable.
Vous pouvez obtenir à peu près ce que vous voulez en faisant de la valeur à une propriété de classe et de déclencher des événements sur modifier comme vous le souhaitez.
*) si votre code est un débogueur pour un processus que vous pouvez faire de l'UC pour vous informer des changements à voir les données chage des points d'arrêt dans Visual Studio. Il faudra donc au moins une certaine quantité de code natif et plus difficile à mettre en œuvre correctement pour manged du code de hance d'objets à déplacer dans la mémoire par la GC.
OriginalL'auteur Alexei Levenkov