Существует два стандартных механизма, в которых реализован паттерн «наблюдения» (который и описывает). Одним из них является использование свойств зависимости.
Другая реализация интерфейса INotifyPropertyChanged.
public partial class MyUserControl : UserControl, INotifyPropertyChanged
{
string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set
{
_myProperty = value;
NotifyPropertyChanged("MyProperty");
}
}
private void NotifyPropertyChanged(string name)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(name);
}
public event PropertyChangedEventHandler PropertyChanged
}
Чтобы просмотреть свойство, вам необходимо присоединиться к событию PropertyChanged
.
MyUserControl control = new MyUserControl();
control += Control_PropertyChanged;
...
void Control_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "MyProperty")
{
//Take appropriate action when MyProperty has changed.
}
}