一个psudocode
定义你的代表
public void delegate EnumPropertyChangedDelegate(object sender, Enum newValue);
Run Code Online (Sandbox Code Playgroud)
定义事件
public event EnumPropertyChangedDelegate EnumPropertyChanged;
Run Code Online (Sandbox Code Playgroud)
在你的财产
private MyEnum myEnum = .... some value
public MyEnum EnumProperty
{
get {return myEnum;}
set {
if(value != myEnum)
{
myEnum = value;
if(EnumPropertyChanged!=null)
EnumPropertyChanged(this, myEnum);
}
}
}
Run Code Online (Sandbox Code Playgroud)
利用setter调用函数或调用事件委托。
public enum PersonName
{
Eric,
George,
David,
Frank
}
private PersonName myPersonName
public PersonName MyPersonName
{
get { return myPersonName; }
set
{
myPersonName = value;
//simply call what you want done
PersonNamePropertyChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
在此处查看更多信息http://msdn.microsoft.com/zh-cn/library/ms743695.aspx ,该操作使用INotifyPropertyChanged完成