3
我正在試驗IronRuby和WPF,並且我想寫我自己的commands。我所知道的下面是我所能想到的。如何在IronRuby中實現包含CLR事件的接口
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和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
這是一個很大的幫助。謝謝!我將工作解決方案代碼添加到問題定義中。 – Ball 2009-08-24 13:23:10
太棒了!反過來,你的解決方案也幫助了我。請務必加入IronRuby郵件列表(如果您還不在):http://rubyforge.org/mail/?group_id=4359 – 2009-08-24 15:17:11