WPF 点击一个button之后处理别的控件的事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 点击一个button之后处理别的控件的事件相关的知识,希望对你有一定的参考价值。

如题,我有几个checkbox,我想在点击了确定按钮之后一起处理checkbox的checked事件,请问怎么做?

原来在checkbox处理事件是酱紫的:
private void checkBox1_Checked(object sender, RoutedEventArgs e)

CheckedLogic();

void CheckedLogic()

那可能在前台你会有多个Checkbox,如果处理的逻辑是相似的,只是说传递的参数不同,可以用Checkbox.tag (当然这个你得先对tag赋值)作为参数参与逻辑运算。

private void checkBox1_Checked(object sender, RoutedEventArgs e)

CheckedLogic( (sender as CheckBox).Tag.ToString());

private void checkBox2_Checked(object sender, RoutedEventArgs e)

CheckedLogic( (sender as CheckBox).Tag.ToString());

void CheckedLogic(string param)

现在楼主想点击button再处理这些逻辑,自然所有的Checkbox的check事件将被删除。只需要在button的click事件里处理逻辑就可以了。可以在click事件中先是判断哪些checkbox被check了,然后再调用逻辑处理函数。

参考代码:

private void button1_Click(object sender, RoutedEventArgs e)

for (int i = 0; i < grid.Children.Count; i++)

var child = grid.Children[i];
if (child is CheckBox)

var checkbox = child as CheckBox;
if (checkbox.IsChecked == true)

CheckedLogic(checkbox.Tag.ToString());



参考技术A 绑定别的控件的事件,或者用观察模式追问

怎么绑定,能说的具体点吗?谢谢

追答

我之前看错了,没看到你的“如题”···只看了大标题,你的这个情况一个btn事件就够了啊,你是实现全选功能呢还是直接根据选中的checkbox的id去删除记录啊

追问

就像下面说的那样。

参考技术B 能把问题描述详细一点吗?按这样的描述无法正确的回答你。追问

就是像这样的一个程序 ,比方说我想同时选中一个radiobutton & checkbox1 & checkbox3,然后点击 ok 之后才触发它们的事件。

追答

checkbox1的checked事件不添加事件委托
在button的方法里面添加checkBox1_Checked(checkBox1, null)这样是否符合你的要求。

如有疑问,继续追问。

WPF-通过点击按钮,实现不同界面切换

1. 不使用tabControl

2. 我设想的是,再界面头部有几个图片按钮;

点击不同的按钮,下部的Content切换到不同的界面

刚刚接触,不太懂啊~~~
谢谢

你可以使用ContentControl控件,然后在button的click事件里动态创建ContentControl的内容(Content属性)

比如你的MainWindow窗口里有如下两个控件,一个ContentControl,一个button

<Grid>
<Button Content="Button" Width="100" Height="40" VerticalAlignment="Top" Margin="0,5,0,5" Click="button1_Click" />
<ContentControl Name="contentControl1" Margin="0,50,0,0" />
</Grid>

然后你在项目中新建一个UserControl名为UserControl1,随便添加一些内容,比如一个椭圆

<Grid>
<Ellipse Fill="Purple" />
</Grid>

最后,设置MainWindow中button的Click事件如下

private void button1_Click(object sender, RoutedEventArgs e)

contentControl1.Content = new UserControl1();


运行一下,点击button,那么ContentControl里面就切换到UserControl1的界面了!类似的,你可以定义很多自定义控件,设置不同的button分别切换到这些控件内容即可!

你可以亲手试试,祝你成功!
参考技术A 你在点击按钮事件上写:

页面名称 名称=new 页面名称();
名称.show();

这样就可以切换了!

以上是关于WPF 点击一个button之后处理别的控件的事件的主要内容,如果未能解决你的问题,请参考以下文章

wpf中 定义一个button 在button的内部放置一个label,当点击label的时

WPF自定义控件,自定义控件中由多个button组成,如何给每个button添加不同事件处理?

winform中如何获取鼠标所点击的控件名称

在WPF中怎么样实现Button点击事件使那个星星向淘宝那样子逐次变色呢?

C# Winform自定义控件加载到主窗体中之后,自定控件上面的空间 怎么和主窗体上其他控件交互?

WPF-通过点击按钮,实现不同界面切换