25

CheckBoxチェックに関連するコードを実行せずにチェックする方法はありますか? 視覚的な外観のためだけに。

編集:

private void normalCheck_Checked(object sender, RoutedEventArgs e)
{
    normal();
}

normalCheckBox.IsChecked=true;イベントを発生させずに設定したいと想像してください。それは可能ですか?

4

4 に答える 4

50

1 つの方法は、イベント ハンドラーをデタッチし、IsCheckedプロパティを設定してから、再度アタッチすることです。

myCheckbox.Checked -= myCheckbox_Checked;
myCheckbox.IsChecked = true;
myCheckbox.Checked += myCheckbox_Checked;
于 2013-05-16T18:47:49.533 に答える
13

Click代わりにイベントをChecked使用して、以下のようにチェックボックスの状態を使用できます。

private void normalCheck_Click(object sender, RoutedEventArgs e)
{
    if (normalCheck.IsChecked ?? false) { normal(); }
}

次に、このイベントは を使用して発生しませんnormalCheck.IsChecked = true;。クリックするだけで上がります。

注: null の可能性がある型を返す??ため、null 合体演算子 ( ) が必要です。IsCheckedbool?

于 2015-07-15T19:58:57.617 に答える
0

「_Checked」イベントを発生させずにチェック済みステータスを変更することを参照している場合は、イベント ハンドラーをパラメーターでオーバーライドして、イベントをスキップするかどうかを伝える必要があります。

関連する回答:イベントを発生させずにチェックボックスの値を変更する

于 2013-05-16T18:48:09.083 に答える