[Ironruby-core] Dispatcher.Invoke

Ivan Porto Carrero ivan at flanders.co.nz
Tue Nov 24 15:18:11 EST 2009


This works for me:

require 'PresentationFramework'
require 'PresentationCore'

class MainWindow < System::Windows::Window

  def update_status(status)
    puts status
  end

  def initialize
    meth = proc { |status| update_status status }
dispatcher.invoke System::Action.of(String).new(&meth), "jo"
  end
end

System::Windows::Application.new.run MainWindow.new
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Google Wave: portocarrero.ivan at googlewave.com
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)



On Tue, Nov 24, 2009 at 8:56 PM, Patrick Brown <patrickcbrown at gmail.com>wrote:

> Hi
>
>    Thanks for your help, it still seems to be a bit off, I get this message
> after I cut and pasted your code in.  Still looking into it but not finding
> much...
>
> ./MainWindow.rb:56: can't convert Proc into System::Delegate (TypeError)
> Thanks,
> Patrick
>
>
>
> On Tue, Nov 24, 2009 at 2:09 PM, Ivan Porto Carrero <ivan at flanders.co.nz>wrote:
>
>> Yes it is possible but you need to wrap it in a Delegate like Action for
>> it to work
>>
>> A ruby method is not a CLR delegate at all.
>> So you can do something like this
>>
>> def update_status(status)
>>   puts status
>> end
>>
>> def initialize
>>   meth = proc { |st| update_status(st) }
>>   self.dispatcher.invoke meth, %w(jo)
>> end
>>
>>
>> ---
>> Met vriendelijke groeten - Best regards - Salutations
>> Ivan Porto Carrero
>> Blog: http://flanders.co.nz
>> Google Wave: portocarrero.ivan at googlewave.com
>> Twitter: http://twitter.com/casualjim
>> Author of IronRuby in Action (http://manning.com/carrero)
>>
>>
>>
>>   On Tue, Nov 24, 2009 at 7:44 PM, Patrick Brown <patrickcbrown at gmail.com
>> > wrote:
>>
>>>   Hello
>>>
>>>    Is it possible to call the Control.Dispatcher.Invoke in IronRuby?  I
>>> have been digging around and trying various approaches for quite a while and
>>> can't quite seem to get it to work.  The most simple example I below where I
>>> do not even access the parameter fails... any ideas would be greatly
>>> appreciated.
>>>
>>>  class MainWindow < Window
>>>   def updateStatus(status)
>>>     puts 'hi'
>>>   end
>>>
>>>   def initialize
>>>     self.Dispatcher.Invoke(updateStatus, ["jo"])
>>>  end
>>> end
>>>
>>> Thanks for your time and ideas,
>>> Patrick
>>>
>>> _______________________________________________
>>> Ironruby-core mailing list
>>> Ironruby-core at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>>
>>>
>>
>> _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20091124/a7cb1d05/attachment-0001.html>


More information about the Ironruby-core mailing list