I''m beginning to research this, but I don''t want to reinvent the wheel if there is already a solution out there. My understanding of the problem is this: Data binding in Silverlight does not work because the system doesn''t know how to handle dynamic objects. This is not the case in WPF because the binding system there uses type descriptors, but type descriptors aren''t available in Silverlight. Is this your understanding as well? Has there been any creative solutions to this problem? Does anyone have details on what the binding system is really doing in Silverlight? -- Posted via http://www.ruby-forum.com/.
That''s my understanding. Silverlight will only reflect over properties, as it does not use type descriptors - nor does it know how to determine a dynamic object''s attributes. If you use attr_accessor, I believe that''ll result in corresponding properties being added to the generated class. If all else fails, you could use the Silveright DataSet ( http://silverlightdataset.net/silverlightdataset/Default.aspx) project to create bindable objects. Behind the scenes, it will create a class with properties that match the column names you pass in. I used it in a recent project where I needed to display a DataGrid bound to the results of an IDataReader, where the columns weren''t known until runtime. Just throwin'' it out there. -Charles On Mon, Sep 27, 2010 at 1:26 PM, Christopher Bennage <lists at ruby-forum.com>wrote:> I''m beginning to research this, but I don''t want to reinvent the wheel > if there is already a solution out there. > > My understanding of the problem is this: > Data binding in Silverlight does not work because the system doesn''t > know how to handle dynamic objects. This is not the case in WPF because > the binding system there uses type descriptors, but type descriptors > aren''t available in Silverlight. > > Is this your understanding as well? > Has there been any creative solutions to this problem? > Does anyone have details on what the binding system is really doing in > Silverlight? > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > 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/20100927/b2b6cccc/attachment.html>
SIlverlight, unlike WPF, is incapable of binding to dynamic properties. Static properties, on the other hand are no problem. One way around this is to create a string indexer on your class (this[string index]) that returns the property by name. Then, in the XAML, you can bind using array (square-bracket) syntax: <TextBlock text="{Binding [property]" />. I do this in C# a lot, and I am pretty sure it translates the same in IronRuby: http://houseofbilz.com/archives/2010/05/14/adventures-in-mvvm-my-viewmodel-base-silverlight-support/ <http://houseofbilz.com/archives/2010/05/14/adventures-in-mvvm-my-viewmodel-base-silverlight-support/>Good luck, Brian On Mon, Sep 27, 2010 at 3:58 PM, Charles Strahan < charles.c.strahan at gmail.com> wrote:> That''s my understanding. Silverlight will only reflect over properties, as > it does not use type descriptors - nor does it know how to determine a > dynamic object''s attributes. > > If you use attr_accessor, I believe that''ll result in corresponding > properties being added to the generated class. > > If all else fails, you could use the Silveright DataSet ( > http://silverlightdataset.net/silverlightdataset/Default.aspx) project to > create bindable objects. Behind the scenes, it will create a class with > properties that match the column names you pass in. I used it in a recent > project where I needed to display a DataGrid bound to the results of an > IDataReader, where the columns weren''t known until runtime. Just throwin'' it > out there. > > -Charles > > > On Mon, Sep 27, 2010 at 1:26 PM, Christopher Bennage <lists at ruby-forum.com > > wrote: > >> I''m beginning to research this, but I don''t want to reinvent the wheel >> if there is already a solution out there. >> >> My understanding of the problem is this: >> Data binding in Silverlight does not work because the system doesn''t >> know how to handle dynamic objects. This is not the case in WPF because >> the binding system there uses type descriptors, but type descriptors >> aren''t available in Silverlight. >> >> Is this your understanding as well? >> Has there been any creative solutions to this problem? >> Does anyone have details on what the binding system is really doing in >> Silverlight? >> -- >> Posted via http://www.ruby-forum.com/. >> _______________________________________________ >> 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/20100927/aa3f7e86/attachment.html>
Here''s some interesting background about what''s happened with IronPython: http://devhawk.net/CategoryView,category,__clrtype__.aspx I''m still reading through it all, but note in particular the post from April 24, 2009: http://devhawk.net/2009/04/20/Introducing+Clrtype+Metaclasses.aspx My guess is that concept of __clrtype__ never made it over into IronRuby.. Brian, regarding your string indexer idea. I assume that you mean to implement the indexer on a C# class and then inherit from that in ruby? That idea has some merit, I''ll look into it. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100928/db7c09aa/attachment-0001.html>
Christopher, My example is in C# using dynamic, but there must be a way to write an Indexer in Ruby that can interop properly. If all else failed, you could write a C# decorator that exposes the Ruby properties dynamically through a string Indexer. Good luck! Let us know what you figure out :) B On Sep 28, 2010 5:31 PM, "Christopher Bennage" < christopher at bluespireconsulting.com> wrote:> Here''s some interesting background about what''s happened with IronPython: > http://devhawk.net/CategoryView,category,__clrtype__.aspx > I''m still reading through it all, but note in particular the post fromApril> 24, 2009: > http://devhawk.net/2009/04/20/Introducing+Clrtype+Metaclasses.aspx > > My guess is that concept of __clrtype__ never made it over into IronRuby.. > > Brian, regarding your string indexer idea. I assume that you mean to > implement the indexer on a C# class and then inherit from that in ruby?That> idea has some merit, I''ll look into it.-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100928/dff6b3f9/attachment.html>
you can always check out my ironnails project that does it for wpf and uses dictionaries. http://github.com/casualjim/ironnails The databinding approach I used should work in silverlight too On Tue, Sep 28, 2010 at 10:23 PM, Christopher Bennage < christopher at bluespireconsulting.com> wrote:> Here''s some interesting background about what''s happened with IronPython: > http://devhawk.net/CategoryView,category,__clrtype__.aspx > I''m still reading through it all, but note in particular the post from > April 24, 2009: > http://devhawk.net/2009/04/20/Introducing+Clrtype+Metaclasses.aspx > > My guess is that concept of __clrtype__ never made it over into IronRuby.. > > Brian, regarding your string indexer idea. I assume that you mean to > implement the indexer on a C# class and then inherit from that in ruby? That > idea has some merit, I''ll look into it. > > > _______________________________________________ > 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/20100929/b2b16cf7/attachment.html>
Hi Ivan, Could you expand a bit on your approach? For what I noticed it defines readers, writters and implements INPC. That''s ok for WPF, but I don''t see how that would help in Silverlight. I''m probably missing something. Thanks Miguel On Wed, Sep 29, 2010 at 4:44 PM, Ivan Porto Carerro <ivan at flanders.co.nz>wrote:> you can always check out my ironnails project that does it for wpf and uses > dictionaries. http://github.com/casualjim/ironnails > > The databinding approach I used should work in silverlight too > > On Tue, Sep 28, 2010 at 10:23 PM, Christopher Bennage < > christopher at bluespireconsulting.com> wrote: > >> Here''s some interesting background about what''s happened with >> IronPython: >> http://devhawk.net/CategoryView,category,__clrtype__.aspx >> I''m still reading through it all, but note in particular the post from >> April 24, 2009: >> http://devhawk.net/2009/04/20/Introducing+Clrtype+Metaclasses.aspx >> >> My guess is that concept of __clrtype__ never made it over into IronRuby.. >> >> Brian, regarding your string indexer idea. I assume that you mean to >> implement the indexer on a C# class and then inherit from that in ruby? That >> idea has some merit, I''ll look into it. >> >> >> _______________________________________________ >> 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 > >-- Miguel A. Madero Reyes www.miguelmadero.com (blog) me at miguelmadero.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20101008/fdbae76c/attachment.html>