C# 更改时将事件附加到属性

C# 更改时将事件附加到属性,c#,silverlight,C#,Silverlight,c#(silverlight)是否有任何特性可以让我在不使用依赖项属性的情况下查看usercontrol的属性,以确定是否有任何更改?我想要一个不是静态的。有两个标准机制,其中实现了“观察”模式(这就是我们所描述的)。一个是依赖属性的使用 另一个是INotifyPropertyChanged接口的实现 public partial class MyUserControl : UserControl, INotifyPropertyChanged { string _myProperty;

c#(silverlight)是否有任何特性可以让我在不使用依赖项属性的情况下查看usercontrol的属性,以确定是否有任何更改?我想要一个不是静态的。

有两个标准机制,其中实现了“观察”模式(这就是我们所描述的)。一个是依赖属性的使用

另一个是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;


我认为您误解了依赖属性。尽管包含对DependencyProperty对象的引用的字段是静态的,但依赖项属性在概念上不是静态的。通常,如果您从DependencyObject继承,您可能希望使用依赖属性来实现一致性(必须记住,绑定将适用于某些属性,而不是对象上的其他属性是不好的)。
void Control_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "MyProperty")
    {
      //Take appropriate action when MyProperty has changed.
    }
}