我正在试图弄清楚如何在ruby类中实现一个事件。具体来说,我试图让我的类实现一个包含事件(PropertyChanged)的接口(INotifyPropertyChanged)。我可以创建我的add_PropertyChanged和remove_PropertyChanged方法......但那又是什么?
这是我班级到目前为止的样子:
class TestClass
include System::ComponentModel::INotifyPropertyChanged
def add_PropertyChanged(handler)
end
def remove_PropertyChanged(handler)
end
end
答案 0 :(得分:2)
好的,我明白了。这是你如何做到的:
class TestClass
include System::ComponentModel::INotifyPropertyChanged
def initialize
@change_handlers = []
end
def add_PropertyChanged(handler)
@change_handlers << handler
end
def remove_PropertyChanged(handler)
@change_handlers.delete(handler)
end
def NotifyPropertyChanged(name)
@change_handlers.each { |h| h.invoke(self, System::ComponentModel::PropertyChangedEventArgs.new(name)) }
end
end