复选框绑定模式以一种方式工作
CheckBox binding Mode works one way
我有一个 Datagrid,我有一个列,里面有一个 CheckBox(我知道 DataGridCheckBoxColumn 存在,但我不喜欢这种行为(单击一次 select,然后第二次更改值)).
这个复选框是这样绑定的
<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;}
}
但最终绑定不正常。对于每个项目,我默认显示正确的值(checked/not 已选中),但如果我 check/uncheck 复选框,则数据没有任何变化(但复选框确实在视觉上发生变化,但 setter 永远不会调用该项目)。
我怀疑问题不大,因为读取了默认值,所以绑定并没有完全错误,但我找不到为什么 setter 从来没有被调用过。
您尝试过 UpdateSourceTrigger=PropertyChanged 吗?
<CheckBox IsChecked="{Binding load, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
我有一个 Datagrid,我有一个列,里面有一个 CheckBox(我知道 DataGridCheckBoxColumn 存在,但我不喜欢这种行为(单击一次 select,然后第二次更改值)).
这个复选框是这样绑定的
<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;}
}
但最终绑定不正常。对于每个项目,我默认显示正确的值(checked/not 已选中),但如果我 check/uncheck 复选框,则数据没有任何变化(但复选框确实在视觉上发生变化,但 setter 永远不会调用该项目)。
我怀疑问题不大,因为读取了默认值,所以绑定并没有完全错误,但我找不到为什么 setter 从来没有被调用过。
您尝试过 UpdateSourceTrigger=PropertyChanged 吗?
<CheckBox IsChecked="{Binding load, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />