【发布时间】:2017-10-25 18:25:36
【问题描述】:
在我的 WPF 程序中,我有一个 ListView 和一个带有 checkbox 的列:
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Checkbox-Column">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Border BorderThickness="2" BorderBrush="AntiqueWhite">
<CheckBox IsChecked="{Binding Status}" />
</Border>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
当用户点击一个复选框时,它应该立即改变它的状态。但实际上,用户需要两次点击。第一次单击选择行(或将其置于“编辑模式”,尽管我不确定),然后第二次单击更改复选框状态。
如何强制复选框在第一次单击时更改?
编辑:这种行为的原因是,我使用bool? 而不是bool 来绑定复选框。该属性的初始值是null(它必须是),所以第一次单击将值更改为false,并将second 更改为true(这就是控件似乎没有反应的原因第一次点击)。
所以 - 问题应该是:如何强制控件从 null 更改为 true 而不是 false?
提前致谢,
弗兰克
【问题讨论】:
-
我无法重现您的问题。第一次点击时哪个控件被聚焦?
-
我玩了一下它并意识到,这种行为的原因是使用了布尔值?而不是绑定复选框的布尔值(请参阅我编辑的问题)