簡體   English   中英

通過CommandParameter傳遞數據

[英]Pass data by CommandParameter

我試圖通過CommandParameter傳遞UserName

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

任何線索?

謝謝!

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

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

雖然它可以完成這項工作,但不應該如何使用CommandParameter CommandParameter應該作為參數傳遞給button的命令。 因此,如果您將使用Command而不是處理Button.Click您的命令將在其ExecuteCanExecute處理程序中接收您的數據。 請參閱Google中的命令和按鈕示例。 這是谷歌的第一個鏈接,例如: 如何在WPF中使用命令

如果您要使用單擊處理程序,為什么不將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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM