3

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

4

2 回答 2

5

一个伪代码

定义你的委托

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);
         }
     }   


}
于 2012-04-26T10:04:17.953 回答
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 完成

于 2012-04-26T10:07:35.407 回答