導入
CheckBoxは、「オン/オフ」を切り替える選択肢です。「利用規約に同意」「通知を受け取る」のように、複数を独立して選べるのが特徴です。
XAMLサンプル(読み物)
<CheckBox x:Name="agreeCheck" Content="利用規約に同意する" />
<!-- 複数を独立して選べる -->
<CheckBox Content="メール通知を受け取る" IsChecked="True" />
<CheckBox Content="SMS通知を受け取る" />
// チェック状態の取得(IsChecked は bool?(3状態対応)なので == true で判定)
bool agreed = agreeCheck.IsChecked == true;
主なプロパティ
IsChecked… チェック状態。型はbool?(true/false/null)Content… 横に表示するラベルIsThreeState…trueで「未確定(null)」を含む3状態にできる
主なイベント
Checked… チェックされたときUnchecked… チェックが外れたとき
補足:
IsCheckedはbool?型なので、判定は== trueと書きます(if (IsChecked)はコンパイルエラー)。
MVVM(実務ではこう書く)
チェック状態もViewModelのboolプロパティに双方向バインドします。コードビハインドでIsCheckedを読む必要がなくなります。
<CheckBox Content="利用規約に同意する" IsChecked="{Binding IsAgreed, Mode=TwoWay}" />
// ViewModel 側
public bool IsAgreed
{
get => _isAgreed;
set { _isAgreed = value; OnPropertyChanged(); }
}
試す(ローカル)
IsCheckedをViewModelのIsAgreedにバインドし、ボタンのCommandのCanExecuteをIsAgreedにすると「同意しないと押せないボタン」が作れる(発展)。
まとめ
- CheckBoxはオン/オフの独立した選択(複数選べる)
IsCheckedはbool?。== trueで判定する- 実務では
IsCheckedをViewModelのboolプロパティにバインド
次回: 複数から1つだけ選ぶRadioButtonです。