Vermeiden Sie allgemein öffentliche Felder als Regel. Versuche, sie so privat wie möglich zu halten. Dann können Sie eine Wrapper-Eigenschaft verwenden, die Ihr Ereignis auslöst. Siehe das Beispiel:
%Vor%Das ist ein einfacher, "nativer" Weg, um das zu erreichen, was Sie brauchen. Es gibt andere Möglichkeiten, sogar von .NET Framework angeboten, aber der obige Ansatz ist nur ein Beispiel.
INotifyPropertyChanged ist bereits definiert, um benachrichtigt zu werden, wenn die Eigenschaft geändert wird.
Umschließen Sie Ihre Variable in der Eigenschaft und verwenden Sie INotifyPropertyChanged
Schnittstelle.
Ändern Sie den Zugriff des BooleanValue auf "privat" und erlauben Sie nur, dass Sie ihn aus Konsistenzgründen durch eine Methode ändern.
Feuern Sie Ihr benutzerdefiniertes Ereignis in dieser Methode
.
%Vor%Option 2: Machen Sie eine Eigenschaft und feuern Sie das Ereignis im Setter
%Vor% Edit: Wie andere gesagt haben, ist INotifyPropertyChanged
der .NET Standard Weg dies zu tun.
Vielleicht werfen Sie einen Blick auf die Schnittstelle INotifyPropertyChanged
. Sie werden sicherlich in Zukunft wieder darauf treffen:
MSDN: Ссылка
In Ihrer Klasse mit der Bool-Eigenschaftsprozedur:
%Vor%Nein, es ist nicht möglich, * über Änderungen im Wert einer Variablen benachrichtigt zu werden.
Sie können fast erreichen, was Sie wollen, indem Sie den Wert als eine Eigenschaft einiger Klassen festlegen und Ereignisse nach Wunsch auslösen.
*) Wenn Ihr Code ein Debugger für einen Prozess ist, können Sie die CPU veranlassen, Sie über Änderungen zu informieren - siehe Data Chage Breakpoints in Visual Studio. Dies erfordert zumindest eine gewisse Menge an nativem Code und ist schwerer zu implementieren, da die Objekte im Speicher durch GC verschoben werden.
Tags und Links .net c# microsoft-metro event-handling inotifypropertychanged