2010-02-05 5 views
1

Je ne fais que commencer avec Silverlight. J'ai un DataGrid dont ItemsSource est lié à un ObservableCollection. Chaque ligne du DataGrid (AutoGenerateColumns = "False") contient des valeurs d'un objet et d'un bouton. Comment puis-je associer un "argument de commande" au bouton pour que je sache quel bouton de la ligne est cliqué?Silverlight 3 bouton clic argument

Merci

Répondre

2

Vous pouvez utiliser Tag attrribute pour cela. En supposant que les objets de la collection ont « Id » propriété vous pouvez lier l'attribut « Tag » du contrôle de bouton pour l'identification de l'objet avec:

<Button Tag="{Binding Id}" .../> 

ou vous pouvez stocker tout l'objet dans Tag

<Button Tag="{Binding Path=.}" .../> 

Ensuite, dans le gestionnaire de clic, vous devez utiliser le paramètre de l'expéditeur pour obtenir le contrôle de l'expéditeur et extraire les informations de tag:

Button btn = sender as Button; 
var tagValue = btn.Tag; // object binded to "tag" attribute 
0

Je l'ai trouvé sur la propriété DataContext de t Objets Button qui, dans ce cas, renvoie l'objet sur lequel la ligne est basée.