我和IronRuby和WPF的实验,我想我自己写的命令 。 我有下面就为是我可以找出。
class MyCommand
include System::Windows::Input::ICommand
def can_execute()
true
end
def execute()
puts "I'm being commanded"
end
end
但ICommand接口定义CanExecuteChanged事件。 如何实现在IronRuby的?
编辑:感谢凯文的回应
下面是根据配置的27223变更集的DLR的。 传递到can_execute和执行的价值是零。
class MyCommand
include System::Windows::Input::ICommand
def add_CanExecuteChagned(h)
@change_handlers << h
end
def remove_CanExecuteChanged(h)
@change_handlers.remove(h)
end
def can_execute(arg)
@can_execute
end
def execute(arg)
puts "I'm being commanded!"
@can_execute = false
@change_handlers.each { |h| h.Invoke(self, System::EventArgs.new) }
end
def initialize
@change_handlers = []
@can_execute = true
end
end