WPF 监视勾选框是否被勾上
时间: 2023-11-27 19:55:19 浏览: 25
在 WPF 中,可以使用 `CheckBox` 控件来实现勾选框。要监视一个 `CheckBox` 是否被勾选,可以使用它的 `IsChecked` 属性。这个属性是一个可空布尔值类型,表示 `CheckBox` 的勾选状态。当 `CheckBox` 被勾选时,这个属性的值为 `true`;当 `CheckBox` 没有被勾选时,这个属性的值为 `false`;当 `CheckBox` 的状态未确定时,这个属性的值为 `null`。
可以通过在代码中订阅 `CheckBox` 的 `Checked` 和 `Unchecked` 事件来实现对其勾选状态的监视。例如:
```csharp
private void MyCheckBox_Checked(object sender, RoutedEventArgs e)
{
// 当 MyCheckBox 被勾选时执行的代码
}
private void MyCheckBox_Unchecked(object sender, RoutedEventArgs e)
{
// 当 MyCheckBox 取消勾选时执行的代码
}
```
另外,也可以使用数据绑定的方式来监视 `CheckBox` 的勾选状态。在 ViewModel 中定义一个布尔类型的属性,然后将这个属性绑定到 `CheckBox` 的 `IsChecked` 属性上。当 `CheckBox` 被勾选或取消勾选时,ViewModel 中的属性值也会相应地改变。例如:
```csharp
public class MyViewModel : INotifyPropertyChanged
{
private bool _isChecked;
public bool IsChecked
{
get { return _isChecked; }
set
{
_isChecked = value;
OnPropertyChanged(nameof(IsChecked));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
然后在 XAML 中将 `CheckBox` 的 `IsChecked` 属性绑定到 ViewModel 中的 `IsChecked` 属性上:
```xml
<CheckBox IsChecked="{Binding IsChecked}" />
```
这样,当 `CheckBox` 被勾选或取消勾选时,ViewModel 中的 `IsChecked` 属性值也会相应地改变,从而可以在 ViewModel 中监视 `CheckBox` 的勾选状态。