Welchen Zweck hat INotifyPropertyChanged? Ich weiß, dass dieses Ereignis ausgelöst wird, wenn ein Objekt geändert wird, aber wie kann die Ansicht/UI weiß, dass dieses Ereignis ausgelöst wird:INotifyPropertyChanged WPF
Hier ist meine Kundenklasse, die das INotifyPropertyChanged Ereignis implementiert:
public class Customer : INotifyPropertyChanged
{
private string _firstName;
public string LastName { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if(PropertyChanged != null)
PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
}
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
OnPropertyChanged("FirstName");
}
}
}
Aber jetzt, wie um der Benutzeroberfläche mitzuteilen, dass sich die Eigenschaft geändert hat. Wie wenn der Benutzer dem Vornamen null oder leer zuweist, wie kann ich eine MessageBox auf der Benutzeroberfläche anzeigen.
Ich weiß über das Aktualisieren der Benutzeroberfläche aufgrund der INotifyPropertyChanged-Schnittstelle, aber wie kann ich etwas auf der Benutzeroberfläche basierend auf der Tatsache ändern, dass FirstName null oder leer ist. –
Wenn Sie sich wirklich nicht an das Ereignis anhängen und tun wollen, was Sie in imperativer Weise tun möchten, können Sie es möglicherweise deklarativ tun, durch eine Kombination von z.B. ein Konverter für string -> bool kapselt Ihre Logik und fährt dann eine Sichtbarkeitseigenschaft mit dem resultierenden bool. Ich sehe jedoch nicht, wie eine MessageBox in XAML angezeigt wird. – flq