当事件button.click发生时,如何获得按钮名称/标签?

Wit*_*tle 9 c# wpf windows-phone windows-phone-8 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));
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*eAK 12

(sender as Button).Tag
Run Code Online (Sandbox Code Playgroud)

应该管用.


BRA*_*mel 12

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

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