[英]Problem in converting the code form vb.net to c#
VB代码:
Public Event PropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
Public Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
If PropertyChangedEvent IsNot Nothing Then
RaiseEvent PropertyChanged(Me, e)
End If
End Sub
转换后的C#代码
public event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged;
public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e);
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChangedEvent != null) {
if (PropertyChanged != null) {
PropertyChanged(this, e);
}
}
}
错误是:
错误1名称'PropertyChangedEvent'在当前上下文中不存在
您的事件称为“ PropertyChanged”,而不是“ PropertyChangedEvent”。
同样,该事件是显式实现的,这意味着,您必须使用以下命令: ((INotifyPropertyChanged)this).PropertyChanged
而不是PropertyChanged
才能访问该事件。
正如Oded指出的那样,代码对事件进行了两次检查。 您可以删除其中一张支票。
不要使用显式接口实现,而应将其设为公共方法。
或投this
的接口调用处理程序。 ((INotifyPropertyChanged)this).PropertyChanged
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.