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