CheckBox绑定模式以一种方式工作

时间:2015-07-22 09:39:37

标签: c# wpf checkbox binding

我有一个Datagrid,我有一个列里面有一个CheckBox(我知道DataGridCheckBoxColumn存在,但我不喜欢这种行为(点击一次选择,第二次改变值)。)。 p>

此复选框以这种方式绑定

<DataGridTemplateColumn x:Name="checkColumn" Header="Check">
    <DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
          <CheckBox IsChecked="{Binding load, Mode=TwoWay}" />
       </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

TwoWay模式应该是默认模式,但无论如何我都添加了它,因为它看起来好像是只读的。

属性负载只是

private bool _load;
public bool load
{
   get { return _load; }
   set { _load = value;}
}

但最终绑定无法正常工作。对于每个项目,我默认显示正确的值(选中/未选中),但是如果我选中/取消选中复选框,则数据没有任何变化(但复选框会直观地更改,但项目的设置者永远不会被调用)

我怀疑这个问题不是很大,因为读取了默认值,绑定并没有完全错误,但我无法找出为什么永远不会调用setter。

1 个答案:

答案 0 :(得分:4)

您是否尝试过UpdateSourceTrigger = PropertyChanged?

<CheckBox IsChecked="{Binding load, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />