选中复选框后取消选中
本文关键字:取消 复选框 | 更新日期: 2023-09-27 17:53:37
我有一个列,这是一个复选框。
<telerik:GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding GoodDeal, Converter={StaticResource ShortToBooleanConverter}}" Checked="CheckBox_Checked" Unchecked="CheckBox_UnChecked"></CheckBox>
</DataTemplate>
</telerik:GridViewColumn.CellTemplate>
当复选框被选中时,我在后面的代码中有CheckBox_Check
方法来处理问题。
在方法内部,我发现一些条件不满足。于是我弹出了一个消息框。当用户单击"是"时,将自动取消选中复选框。
我的想法是在后面的代码中添加方法。
private void CheckBox_UnChecked(object sender, RoutedEventArgs e)
{
CheckBox chkBox = sender as CheckBox;
chkBox.IsChecked = false;
}
但是如何在代码中引发此事件?
在事件处理程序和MVVM绑定后面使用代码并不是一个好的组合,并且可能导致应用程序的行为不符合预期。如果您正在实现MVVM解决方案,我建议您将所有逻辑保留在视图模型中。
在这段伪代码中,我使用了您要绑定的属性,但您也可以使用命令。
public short GoodDeal
{
get {return _goodDeal; }
set
{
if (NotGoodDeal(value))
{
if ( UserConfirmDeal() )
{
_goodDeal = value;
}
}
RaisePropertyChange();
}
}
添加到您的XAML: Unchecked="CheckBox_UnChecked"
一种方法是在消息框按钮上添加命令并将其绑定到视图模型,并将GoodDeal设置为false。