如何获得枚举值的变化事件?

vai*_*hav 3 c# silverlight

当我将它用作自定义控件的属性时,我创建了1个枚举,我想触发一个事件来更改枚举属性.请帮助.

Tig*_*ran 5

一个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)


eri*_*osg 5

利用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完成