2012-11-06 202 views
1

我試圖通過用戶名CommandParameter通過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? 
} 

任何線索?

謝謝!

回答

2

最好的,你可以用這種方法做的是:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    var button = (Button) sender; 
    var userName = button.CommandParameter; 
} 

雖然它會做的工作,但它不是CommandParameter應該如何使用。應該將CommandParameter作爲參數傳遞給按鈕的命令。因此,如果您將使用Command而不是處理Button.Click,則您的命令將在其ExecuteCanExecute處理程序中收到您的數據。在google中查看示例中的命令&按鈕。這裏是谷歌的第一個鏈接例如:How to use Commands in WPF

2

如果你要使用點擊處理程序,爲什麼不將Button的標籤屬性綁定到用戶名?沿着標籤屬性的目標而不是指揮校長的濫用。

<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; 
}