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”
答案 0 :(得分:3)
您的活动名为“PropertyChanged”,而非“PropertyChangedEvent”
此外,事件已明确实现,这意味着,您必须使用此:
((INotifyPropertyChanged)this).PropertyChanged
代替PropertyChanged
来访问该活动
正如Oded所指出的那样,代码会对事件进行两次检查。您可以删除其中一个检查。
答案 1 :(得分:0)
不要使用显式接口实现,只需将其设为公共方法即可。
或者将this
转换为接口以调用处理程序。 ((INotifyPropertyChanged)this).PropertyChanged