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

2025-04-14 11:29:17
推荐回答(1个)
回答1:

原来在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());
}
}
}
}