IronPython与WPF:将复选框的IsChecked属性绑定到类成员变量
我看到很多类似的问题,都是关于如何让复选框的数据绑定正常工作,但我看到的所有例子都是用C#写的,我却不知道怎么把它转换成IronPython。我在窗口中定义了一个复选框,如下所示:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Name="Test" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">
<DockPanel>
<CheckBox Name="bindtest" IsChecked="{Binding Path=o1checked, Mode=OneWay}"></CheckBox>
<Button Content="Toggle" Name="Toggle" Padding="5"></Button>
</DockPanel>
</Window>
我希望当下面这个类中的self.o1checked
被切换时,它的IsChecked值能够自动更新:
class MaikoCu64(object):
def __init__(self):
self.o1checked = False
ui.win['Button']['Toggle'].Click += self.Toggle_OnClick
def Toggle_OnClick(self, sender, event):
self.o1checked = not self.o1checked
(那个ui
对象是一个类,它把xaml加载成一个包含用户界面控件的字典。你可以在这里查看)
那么我该怎么做呢?在花了几个小时阅读MSDN的绑定文档(也是全C#的)后,我尝试添加了这个:
import System
myBinding = System.Windows.Data.Binding("o1checked")
myBinding.Source = self
myBinding.Mode = System.Windows.Data.BindingMode.OneWay
ui.win['CheckBox']['bindtest'].SetBinding(System.Windows.Controls.CheckBox.IsCheckedProperty, myBinding)
虽然它没有工作,但看起来至少有点道理。我是不是在正确的方向上?