通过object [property]而不是object.property绑定到对象的属性

时间:2011-02-09 16:36:36

标签: .net wpf binding ironpython

我已经阅读了WPF数据绑定概述,并且我感觉这样应该是可能的,但我不能在这里进行精神上的飞跃。我知道如果我将绑定Path设置为foo,并将Source设置为obj,那么绑定将会显示obj.foo。换句话说,将访问obj.__getattr__()

我想要的只是让它看一下obj[foo]我正在使用Ironpython,在这种情况下,我的obj类有一个被覆盖的__getitem__()调用成员函数并返回一个值,这就是我需要这个功能的原因。

以上是以编程方式编写的上述示例。这会在复选框中显示foo的{​​{1}}属性:

obj

解决方案

显然,这很简单!

myBinding = Binding("foo")
myBinding.Source = obj          
acheckbox.SetBinding(CheckBox.IsCheckedProperty, myBinding)

1 个答案:

答案 0 :(得分:1)

您可以在绑定中使用它,例如如果我的DataContext /来源有财产

public string this[int i]
{
    get{...}
    set{...}
}

你可以像这样创建一个绑定:

<TextBlock Text="{Binding [0]}"/>

编辑:我觉得我可能误解了你的问题,如果是的话请告诉我。