2016-06-20 13 views
2

FrameworkElementから継承した複数のビューによって実装されるインターフェイスを抽出しようとしています。このDataContextChangedイベントをインターフェイスに抽出する方法は?

public interface ILoadable{ 
     object SetModelAndReturn(); 

     void LoadControls(); 

     event TypedEventHandler<FrameworkElement, DataContextChangedEventArgs> DataContextChanged; 
    } 

のようなしかし、それは で失敗「FrameworkElement.DataContextChanged」を実装することはできません「ILoadable.DataContextChanged」「FrameworkElement.DataContextChangedは」Windowsランタイムイベントで、「ILoadable.DataContextChanged」は、通常の.NETイベントです。ので、

解決策はありますか?事前

答えて

0

おかげで私は、明示的なイベントハンドラを使用して、KeyDownイベント/ keyUpイベントイベントと同様の問題を解決しました。

例えば、インターフェース

public interface IFoo 
{ 
    event KeyEventHandler KeyUp; 
} 

とクラス

public class MyElement : UIElement, IFoo 
{ 
} 

与えられた私は、エラーメッセージ

になるだろう 'UIElement.KeyUp'「を実装することはできませんIFoo.KeyUp 'UIElement.KeyUp'はWindowsランタイムイベントであり、 'IFoo.KeyUp'は通常の.NETイベントです。

このコンパイルエラーを解決するために、イベントを明示的に実装しました。

public class MyElement : UIElement, IFoo 
{ 
    event KeyEventHandler IFoo.KeyUp 
    { 
     add { this.KeyUp += value; } 
     remove { this.KeyUp -= value; } 
    } 
} 
関連する問題