WPF CheckBox.IsChecked 绑定

svi*_*nja 2 c# data-binding wpf

我有一个数据网格,其中包含我以编程方式生成的可变数量的列。它包含 DataGridTemplateColumns,每个列都有一个包含 CheckBox 和 TextBlock 的 DockPanel。

绑定代码:

    Binding bindingPicked = new Binding(string.Format("Prices[{0}].Picked", i));
    bindingPicked.Mode = BindingMode.TwoWay;
Run Code Online (Sandbox Code Playgroud)

复选框代码:

    FrameworkElementFactory factoryCheckBox = new FrameworkElementFactory(typeof(CheckBox));
    factoryCheckBox.SetValue(CheckBox.IsCheckedProperty, bindingPicked);
Run Code Online (Sandbox Code Playgroud)

所选属性:

    private bool _picked;
    public bool Picked
    {
        get { return _picked; }
        set { _picked = value; }
    }
Run Code Online (Sandbox Code Playgroud)

当数据网格初始化时,将按预期调用 Picked getter。但是,当我选中/取消选中复选框时,不会调用设置器。是什么原因造成的?我不想使用 DependencyProperty,并且我认为不需要它,因为我只需要在用户单击复选框时调用属性设置器。

编辑:显然我是个白痴,我只是忘记了 bindingPicked.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; 请随意关闭它。

Bas*_*Bas 5

bindingPicked.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
Run Code Online (Sandbox Code Playgroud)

应该可以了:)