首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用CommandParameter传递数据

用CommandParameter传递数据
EN

Stack Overflow用户
提问于 2012-11-06 17:05:07
回答 2查看 1.7K关注 0票数 1

我正试图通过UserName CommandParameter

代码语言:javascript
复制
<GridViewColumn   Width="Auto" Header="UserName" >
   <GridViewColumn.CellTemplate>
       <DataTemplate>
          <Button Click="Button_Click" Content="..." CommandParameter="{Binding Path=UserName}"></Button>                                                                                                         </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

但在这里我不知道我要用什么来抓住它..。

代码语言:javascript
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    // How to get UserName  here?
}

有线索吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-06 17:20:37

使用这种方法可以做到的最好方法是:

代码语言:javascript
复制
private void Button_Click(object sender, RoutedEventArgs e)
{
    var button = (Button) sender;
    var userName = button.CommandParameter;
}

虽然它将完成这项工作,但这并不是CommandParameter应该如何使用。CommandParameter应该作为参数传递给按钮的命令。因此,如果您将使用Command而不是处理Button.Click,那么您的命令将在其ExecuteCanExecute处理程序中接收数据。请参阅google中的命令和按钮示例。下面是google的第一个链接,例如:如何在WPF中使用命令

票数 2
EN

Stack Overflow用户

发布于 2012-11-06 20:51:06

如果要使用单击处理程序,为什么不将Button的Tag属性绑定到UserName?与误用指挥主体相比,标记属性的意图要略多一点。

代码语言:javascript
复制
<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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13255882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档