2011-01-23 6 views
0

私は(カスタムスライダーまたは標準コントロールで)これを実行する必要があります。大きな問題は、

 ISlider ISlider; 
     ISlider = slider as ISlider; 
     if (ISlider != null) 
     { 
      ISlider.CustomEvent += new CustomEventDelegate(MyCustomEventHandler); 
     } 
     else 
     { 
      // standard control 
      this.slider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(this.slider_ValueChange); 
     } 

しかし、それはインタフェースがフィールドを含めることができないと言うので、C#が拒否した(CustomEvent)私が上の私のコードをコンパイルできないので、私が何をすることができますか?

CustomEventDelegate CustomEvent ; 
+0

はISliderインターフェイス宣言のコードを表示します。 –

+0

ok更新された質問ありがとうございます。 – user310291

+0

Ummm ...いいえ、あなたはISliderインターフェイス宣言を表示しませんでした。 'public interface ISlider {...}'コードを含めてください。 –

答えて

9

CustomEventが実際ISlider内のフィールドとして宣言すべきではない:私はちょうど宣言しようとしたISliderインタフェースで

。それはイベントとして宣言する必要があります。

public delegate void CustomEventDelegate(/*whatever*/); 

public interface ISlider { 
    event CustomEventDelegate CustomEvent; 
} 

そして型名と参照変数名が異なっているので、あなたのコードを修正:

ISlider itf; 
    itf = slider as ISlider; 
    if (itf != null) 
    { 
     itf.CustomEvent += new CustomEventDelegate(MyCustomEventHandler); 
    } 
+0

私はこれを更新しましたISliderを実装しているクラスで別の問題が発生しました:) – user310291

+0

Erm、これをdownvoteしましたか?どうして? –

+0

私の問題は解決していないので、私のポストアップデートを読んだのですか? – user310291

関連する問題