我正在尝试提取一个接口,该接口由从FrameworkElement继承的多个视图实现。喜欢这个
public interface ILoadable{
object SetModelAndReturn();
void LoadControls();
event TypedEventHandler<FrameworkElement, DataContextChangedEventArgs> DataContextChanged;
}
但它失败了 &#39; FrameworkElement.DataContextChanged&#39;无法实现&#39; ILoadable.DataContextChanged&#39;因为&#39; FrameworkElement.DataContextChanged&#39;是一个Windows运行时事件和&lt; ILoadable.DataContextChanged&#39;是一个常规的.NET事件。
有解决方案吗?
提前致谢
答案 0 :(得分:0)
我刚刚使用Explicit事件处理程序解决了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; }
}
}