我有一个复选框
<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 =“你无法更新它。”
在这种情况下,我想保留原始复选框状态/例如,如果已选中,则单击它。它没有结果。但是当条件失败时,我想保持它的状态。
诀窍是什么?
答案 0 :(得分:2)
在CheckBox_Checked
内,你可以这样做:
var cb = (CheckBox)sender;
if (!canProceed)
{
cb.Checked = !cb.Checked
}
但更好的方法是在不应更改时禁用CheckBox
。您也可以使用转换器,有关详细信息,请参阅this。