所以,假设我在C#和Ruby中有两个几乎相同的类:
C#
public class Test
{
public Test()
{
ImageLocation = "http://www.ironruby.net/@api/deki/site/logo.png";
}
public string ImageLocation { get; set; }
}
红宝石
class Test
attr_accessor :ImageLocation
def initialize
@ImageLocation = "http://www.ironruby.net/@api/deki/site/logo.png"
end
end
当我绑定到C#中的“ImageLocation”属性时,所有三个控件都正确绑定。当我使用IronRuby对象绑定到同一属性时,它适用于TextBlock
,但TextBox
和Image
失败。这是我的XAML:
<Image Source="{Binding ImageLocation}" Width="50" />
<TextBlock Text="{Binding ImageLocation}" />
<TextBox Text="{Binding ImageLocation}" />
为什么绑定对一个控件有效,而对其他控件无效?
答案 0 :(得分:1)
Ivan Porto Carrero的书IronRuby in Action提供了解决问题的方法。请参阅本书源代码中的databinding.rb。
这绝对不能解决你遇到的问题,而且我自己也重新制作了它。
更新: Shay的回答也适用于我。
答案 1 :(得分:1)
IronRuby类型在WPF绑定方面存在一些问题......让我们说它还不完美:)
要解决您的问题,我建议您使用CLR类和类型。例如,要使示例代码正常工作,只需转换此行:
@ImageLocation = "http://www.ironruby.net/@api/deki/site/logo.png"
对此:
@ImageLocation = "http://www.ironruby.net/@api/deki/site/logo.png".to_clr_string