我正试图通过UserName CommandParameter。
<GridViewColumn Width="Auto" Header="UserName" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Click="Button_Click" Content="..." CommandParameter="{Binding Path=UserName}"></Button> </DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>但在这里我不知道我要用什么来抓住它..。
private void Button_Click(object sender, RoutedEventArgs e)
{
// How to get UserName here?
}有线索吗?
谢谢!
发布于 2012-11-06 17:20:37
使用这种方法可以做到的最好方法是:
private void Button_Click(object sender, RoutedEventArgs e)
{
var button = (Button) sender;
var userName = button.CommandParameter;
}虽然它将完成这项工作,但这并不是CommandParameter应该如何使用。CommandParameter应该作为参数传递给按钮的命令。因此,如果您将使用Command而不是处理Button.Click,那么您的命令将在其Execute和CanExecute处理程序中接收数据。请参阅google中的命令和按钮示例。下面是google的第一个链接,例如:如何在WPF中使用命令
发布于 2012-11-06 20:51:06
如果要使用单击处理程序,为什么不将Button的Tag属性绑定到UserName?与误用指挥主体相比,标记属性的意图要略多一点。
<Button Click="Button_Click" Content="Button Content" Tag="{Binding UserName}"/>
private void Button_Click(object Sender, RoutedEventArgs e)
{
var Button = (Button)Sender;
var UserName = (string)Button.Tag;
}https://stackoverflow.com/questions/13255882
复制相似问题