繁体   English   中英

选中后取消选中该复选框

[英]Uncheck the checkbox after checked it

我有一列是一个复选框。

 <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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM