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に実装するにはどうすればよいですか?
編集:ケビンの応答に感謝
DLR の 27223 変更セットに基づいて機能するものを次に示します。can_execute と execute に渡される値は nil です。
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