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

セッターを使用して、関数を呼び出したり、イベントデリゲートを呼び出したりします。

  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 に答える