Я прочитал обзор привязки данных WPF, и я чувствую, что возможно, что это возможно, но я не могу сделать здесь умственный скачок. Я знаю, что если я установлю привязку Path
на foo
и установлю Source
на obj
, то привязка будет смотреть на obj.foo
. Другими словами, obj.__getattr__()
будет доступен.
Все, что я хочу, это вместо этого посмотреть obj[foo]
. Я использую Ironpython, и в этом случае мой obj
класс имеет переопределенный __getitem__()
, который вызывает функцию-член и возвращает значение, поэтому мне нужна эта функциональность.
Здесь приведенный выше пример написан программно. Это отображает foo
свойство obj
в флажке:
myBinding = Binding("foo")
myBinding.Source = obj
acheckbox.SetBinding(CheckBox.IsCheckedProperty, myBinding)
Решение
Это так просто, по-видимому!
myBinding = Binding("[foo]")
myBinding.Source = obj
acheckbox.SetBinding(CheckBox.IsCheckedProperty, myBinding)