[英]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.