保留原始复选框状态

时间:2016-10-13 15:08:09

标签: .net xaml mvvm telerik

我有一个复选框

  <telerik:GridViewColumn Width="40" Header="Something" HeaderTextAlignment="Center" TextAlignment="Center">
                        <telerik:GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox  HorizontalAlignment="Center" IsChecked="{Binding Order,Converter={StaticResource ShortToBooleanConverter},Mode=TwoWay}"
                                          Click="CheckBox_Checked">

                                </CheckBox>
                            </DataTemplate>
                        </telerik:GridViewColumn.CellTemplate>
                    </telerik:GridViewColumn>

在代码后面的click事件中。

  private void CheckBox_Checked(object sender, RoutedEventArgs e)
    {

如果条件失败,我想显示一些消息。

  

var message =“你无法更新它。”

在这种情况下,我想保留原始复选框状态/例如,如果已选中,则单击它。它没有结果。但是当条件失败时,我想保持它的状态。

诀窍是什么?

1 个答案:

答案 0 :(得分:2)

CheckBox_Checked内,你可以这样做:

var cb = (CheckBox)sender;

if (!canProceed)
{
    cb.Checked = !cb.Checked
}

但更好的方法是在不应更改时禁用CheckBox。您也可以使用转换器,有关详细信息,请参阅this