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