Ivan Porto Carrero
2008-Apr-27 07:54 UTC
[Ironruby-core] Databinding with WPF and Silverlight
Hi Will plain ruby objects be able to participate in the WPF databinding scenario or I may be doing it wrong ? I''m asking because I tried the following and the C# class works but the ruby class doesn''t. If I replace Person.new with CSPerson.new it works. I can bind to arrays with simple types and I''ve tried binding to Name or name. <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Testing 123" Height="500" Width="826" > <Grid> <TextBlock Text="Testing 123" /> <ListBox x:Name="list"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=Name, FallbackValue=Name should be here}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid> </Window> public class CSPerson { public CSPerson(int id, string name, int age){ Id=id; Name=name; Age=age; } public int Id{get; set;} public string Name{get; set;} public int Age{get; set;} } # get the necessary assemblies loaded for .NET require ''mscorlib'' require ''System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'' require ''System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'' require ''PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' require ''PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' require File.expand_path(''./csperson.dll'' ) # include some namespaces for easy access include System include System::Windows include System::Windows::Markup include System::Xml class Person attr_accessor :name, :age, :id def initialize(id, name, age) @id, @name, @age = id, name, age end end #run the application xaml_path = "default.xaml" obj = XamlReader.load XmlReader.create(xaml_path) people = [] people << Person.new(1, "ivan", 30) people << Person.new(2, "jeff", 25) people << Person.new(3, "mark", 38) people << Person.new(4, "vicky", 33) obj.find_name(''list'').items_source = people Application.new.run obj Thanks Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080427/8654999e/attachment-0001.html>
John Lam (IRONRUBY)
2008-Apr-28 14:14 UTC
[Ironruby-core] Databinding with WPF and Silverlight
Ivan Porto Carrero:> Will plain ruby objects be able to participate in the WPF databinding > scenario or I may be doing it wrong ? I''m asking because I tried the > following and the C# class works but the ruby class doesn''t. If I > replace Person.new with CSPerson.new it works.This will definitely work in the future. We''ll revisit this post-RailsConf. I had this working a couple of years ago with RubyCLR: http://www.iunknown.com/2006/05/activerecord-an.html Thanks, -John