c# - button.click 事件发生时如何获取按钮名称/标签?

标签 c# wpf windows-phone-8 windows-phone visual-studio-2013

我正在以编程方式制作按钮并将它们添加到堆栈面板,以便每次用户导航到页面时按钮都会更改。我正在尝试做这样的事情,当我点击创建的按钮时,它会捕获按钮的标签并转到正确的页面。但是,我无法使用 RoutedEventHandler 访问按钮元素。这是代码:

foreach (item in list)
{ 
   Button newBtn = new Button();
   newBtn.Content = "Button Text";
   newBtn.Tag = item.Tag;
   newBtn.Name = item.Name;
   newBtn.Click += new RoutedEventHandler(newBtn_Click);
}

private void newBtn_Click(object sender, RoutedEventArgs e)
{
   NavigationService.Navigate(new Uri("/DetailPage.xaml?selectedItem=" + sender.Tag, UriKind.Relative));
}

最佳答案

非常简单,只需将发送者转换为按钮对象,您将获得所有按钮属性

  private void newBtn_Click(object sender, RoutedEventArgs e)
    {
       NavigationService.Navigate(new Uri("/DetailPage.xaml?selectedItem=" + ((Button)sender).Tag, UriKind.Relative));
    }

关于c# - button.click 事件发生时如何获取按钮名称/标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530608/

相关文章:

c# - 在 C# 中自动生成接口(interface)实现?

wpf - 如何在 WPF 中正确绑定(bind)数据上下文 RelativeSource?

wpf - 在 WPF RibbonButton 中使用矢量图形 XAML 文件作为 ImageSource

networking - Windows Phone 8 模拟器 - 从主机 PC 上的主机文件访问域?

xaml - 即使已明确设置,Windows Phone 列表框项目背景也会改变颜色

windows-phone-8 - 可以在不依赖 Xamarin 的情况下使用 mvvmcross 吗?

c# - 根据数据库表值创建标签或其他控件

c# - 如何获取 IDispatchMessageInspector 中的异常对象?

c# - 如何从 "string"返回变量 "switch"?

c# - 有什么方法可以自动占用WrapPanel中的空白空间吗?