gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:47:14 27 4
gpt4 key购买 nike

C# (silverlight) 是否有任何功能可以让我在不使用依赖属性的情况下观察用户控件的属性,以了解何时进行了任何更改?我想要一个非静态的。

最佳答案

有两种标准机制可以实现“观察”模式(描述的内容)。一种是依赖属性的使用。

另一个是INotifyPropertyChanged接口(interface)的实现。

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.
}
}

关于c# - 更改时将事件附加到属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com