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

时间:2012-04-26 09:59:14

标签: c# silverlight

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

2 个答案:

答案 0 :(得分:5)

psudocode

定义你的代表

public void delegate EnumPropertyChangedDelegate(object sender, Enum newValue); 

定义事件

public event EnumPropertyChangedDelegate  EnumPropertyChanged; 

并在您的财产中

private MyEnum myEnum = .... some value
public MyEnum EnumProperty
{
     get {return myEnum;} 

     set {
         if(value != myEnum)
         {
             myEnum = value;
             if(EnumPropertyChanged!=null)
                 EnumPropertyChanged(this, myEnum);
         }
     }   


}

答案 1 :(得分:4)

使用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();
      }
  }

在此处查看更多信息http://msdn.microsoft.com/en-us/library/ms743695.aspx 这是使用INotifyPropertyChanged

完成的