WPFcheckbox:另外添加click事件以检查/取消选中

时间:2016-07-22 12:41:51

标签: c# wpf checkbox

在WPF中,我想在用户第一次点击CheckBox时打开一个对话框 - 某种警告,如果他真的想要启用此选项。该事件将在代码隐藏中处理。

这样的事情是可能的:

<CheckBox IsChecked="{Binding Path=Something.Enabled}"
          PreviewMouseDown="CheckBox_PreviewMouseDown"/>
<!-- or: -->
<CheckBox IsChecked="{Binding Path=Something.Enabled}"
          Click="CheckBox_Click"/>

我还想将CheckBox已检查和未检查的事件绑定到IsChecked属性,如上例所示。

2 个答案:

答案 0 :(得分:0)

由于任何类型的确认对话框都会停止点击Something.Enabled,因此您必须自己设置CheckBox.IsChecked。在代码中设置Something.Enabled只会破坏你的绑定。

您可以将确认放在ViewModel中(在private bool _confirmed; private void CheckBox_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if(!_confirmed) if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { _confirmed = true; Checked = true; } } 的设置器中)或者像这样:

{{1}}

答案 1 :(得分:0)

您可以简单地添加保存值的新布尔标志,无论DialogBox是否已经显示。