当我最初发布这个问题时,我认为我不够清楚。
看看这些截图。
(Link to bigger screenshot here)
请注意我用红色装箱的部分。这里显示的类实现实现INotifyPropertyChanged
,但VB编译器似乎认为声明的PropertyChanged
事件与INotifyPropertyChanged.PropertyChanged
的签名不匹配。
(Link to bigger screenshot here)
这里我选择了有问题的代码行。在这个和下一个截图之间我只是剪切并粘贴 完全相同的行回到文件中(即,我点击了 Ctrl + X 后跟 Ctrl + V )。
(Link to bigger screenshot here)
现在看哪!在切割并粘贴线后,错误就消失了。
这里发生了什么?
我有时会发生这种情况,特别是根据我的经验使用INotifyPropertyChanged
界面,但我不知道问题是否仅限于那个单一界面(这看起来很奇怪)。
假设我有一些像这样设置的代码。有一个单一事件的界面。一个类实现该接口。它包括活动。
Public Interface INotifyPropertyChanged
Event PropertyChanged As PropertyChangedEventHandler
End Interface
Public Class Person
Implements INotifyPropertyChanged
Public Event PropertyChanged _
(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) _
Implements INotifyPropertyChanged.PropertyChanged
' more code below '
End Class
每隔一段时间,当我构建我的项目时,编译器会突然开始表现得就像上面的代码被破坏了一样。它会报告Person
类没有实现INotifyPropertyChanged
,因为它没有PropertyChanged
个事件;或者它会说PropertyChanged
事件无法实现INotifyPropertyChanged.PropertyChanged
,因为它们的签名不匹配。
这很奇怪,但这是最奇怪的部分:如果我只是剪掉以Event PropertyChanged
开头的行,然后将其粘贴回来,那么错误就会消失。该项目建立。
有没有人知道这里会发生什么?
答案 0 :(得分:2)
代码对我来说很好(Visual Studio 2008),你必须遇到一些错误。
无论如何,您也可以这样实现:
Public Class Person
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
End Class
答案 1 :(得分:1)
您需要标记事件Public