我正在生成一些具有相似或相同内容的按钮,并希望使用它们的名称来区分它们。由于程序正在动态创建按钮,我无法为它们创建单独的事件,而是需要能够获取名称以便能够知道触发事件的按钮。
有没有办法将按钮名称传递给它启动的点击事件?发件人对象似乎包含内容但不包含名称。
这是一个类似的事件:
private void Button_Click(object sender, RoutedEventArgs e)
{
//getname of button
Canvas.Children.Remove(//name of button\\)
}
答案 0 :(得分:6)
据我所知,WPF甚至没有自动为Name
属性分配任何内容 - 这只是供开发人员分配,所以我们可以引用该控件。
但是,你应该能够将发送者传递给remove方法,因为它接受了一个派生自Button的UIElement参数。
Canvas.Children.Remove((Button)sender);
答案 1 :(得分:5)
我不熟悉WPF。如果这个答案似乎是一个垃圾,我会删除它。
在ASP.Net中,我们可以转换为按钮来获取发件人的信息。像这样的东西 -
private void Button_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
button.Name
}
答案 2 :(得分:0)
或许获得控件的名称对您有用
private void button1_Click(object sender, RoutedEventArgs e)
{
Control control = (Control)sender;
Canvas.Children.Remove(control.Name);
}