代码之家  ›  专栏  ›  技术社区  ›  Brian Genisio

为什么某些WPF绑定会失败于IronRuby属性?

  •  2
  • Brian Genisio  · 技术社区  · 15 年前

    所以,假设我有两个 几乎 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}" />
    

    为什么绑定对一个控件有效,而对其他控件无效?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Shay Friedman    15 年前

    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
    
        2
  •  1
  •   user29439    15 年前

    伊凡·波托·卡雷罗的书 IronRuby in Action 为您的问题提供解决方案。见 databinding.rb 从书的源代码。

    这肯定不能解决你的问题,我自己也已经重新解释过了。

    更新: 谢伊的回答对我也很有用。

    推荐文章