有没有办法阻止WPF CheckBox触发其Checked事件?

有没有办法阻止WPF CheckBox触发其Checked事件?,第1张

概述我有一组 WPF CheckBoxes,它们有一个Checked事件处理程序,当用户点击其中一个时,它处理一些逻辑.但是,我还有一个“全部清除”按钮,单击该按钮将清除所有复选框.如果用户点击“全部清除”按钮,我不希望复选框触发他们的Checked事件.有办法做到这一点吗? 在Clear All按钮的事件处理程序的开头删除事件处理程序,然后在Clear All按钮的事件处理程序的末尾重新添加事件处理 我有一组 WPF CheckBoxes,它们有一个Checked事件处理程序,当用户点击其中一个时,它处理一些逻辑.但是,我还有一个“全部清除”按钮,单击该按钮将清除所有复选框.如果用户点击“全部清除”按钮,我不希望复选框触发他们的Checked事件.有办法做到这一点吗?解决方法 在Clear All按钮的事件处理程序的开头删除事件处理程序,然后在Clear All按钮的事件处理程序的末尾重新添加事件处理程序.

这是一个肮脏的样本:

XAML

<Window x:Class="UncheckedTest.Window1"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    title="Window1" Height="300" WIDth="300">    <GrID>        <CheckBox Height="16" margin="22,30,136,0" name="checkBox1" VerticalAlignment="top"                   Unchecked="checkBox1_Unchecked">CheckBox 1</CheckBox>        <CheckBox Height="16" margin="22,76,0" name="checkBox2" VerticalAlignment="top"                   Unchecked="checkBox2_Unchecked">CheckBox 2</CheckBox>        <CheckBox margin="22,121" name="checkBox3" Height="16" VerticalAlignment="Bottom"                   Unchecked="checkBox3_Unchecked">CheckBox 3</CheckBox>        <button HorizontalAlignment="Right" margin="0,118,37,121" name="button1" WIDth="87"                 Click="button1_Click">Uncheck All</button>        <TextBox Height="74" margin="22,20,13" name="textBox1" VerticalAlignment="Bottom"                  textwrapPing="Wrap" VerticalScrollbarVisibility="Visible" />    </GrID></Window>

代码背后

using System;using System.windows;namespace UncheckedTest{    /// <summary>    /// Interaction logic for Window1.xaml    /// </summary>    public partial class Window1 : Window    {        private int i = 1;        public Window1()        {            InitializeComponent();        }        voID checkBox3_Unchecked(object sender,RoutedEventArgs e)        {            textBox1.Text = i++.ToString() + ". CheckBox 3 Unchecked." + Environment.Newline + textBox1.Text;        }        voID checkBox2_Unchecked(object sender,RoutedEventArgs e)        {            textBox1.Text = i++.ToString() + ". CheckBox 2 Unchecked." + Environment.Newline + textBox1.Text;        }        voID checkBox1_Unchecked(object sender,RoutedEventArgs e)        {            textBox1.Text = i++.ToString() + ". CheckBox 1 Unchecked." + Environment.Newline + textBox1.Text;           }        private voID button1_Click(object sender,RoutedEventArgs e)        {            checkBox1.Unchecked -= checkBox1_Unchecked;            checkBox2.Unchecked -= checkBox2_Unchecked;            checkBox3.Unchecked -= checkBox3_Unchecked;            checkBox1.IsChecked = false;            checkBox2.IsChecked = false;            checkBox3.IsChecked = false;            checkBox1.Unchecked += checkBox1_Unchecked;            checkBox2.Unchecked += checkBox2_Unchecked;            checkBox3.Unchecked += checkBox3_Unchecked;        }    }}
总结

以上是内存溢出为你收集整理的有没有办法阻止WPF CheckBox触发其Checked事件?全部内容,希望文章能够帮你解决有没有办法阻止WPF CheckBox触发其Checked事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1140569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存