[英]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
您的命令將在其Execute
和CanExecute
處理程序中接收您的數據。 請參閱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.