2016-04-11 6 views
0

J'ai beaucoup de boutons qui ont tous le même clic, mais j'aimerais savoir quel bouton a été cliqué sans écrire de code C# distinct pour chacun d'entre eux. Si je pouvais juste lire le tag XAML comme une chaîne en C#, je pourrais le faire fonctionner mais je ne peux pas comprendre comment le faire. Des idées? Merci!!Lire la balise XAML en tant que chaîne en C#

+1

Vous ne savez vraiment pas exactement ce que vous voulez dire, mais vous ne pourriez pas utiliser la propriété 'Name' de vos balises XAML? Fournissez du code pour mieux comprendre votre question. – Smartis

+1

Vous avez déjà le bouton sur lequel vous avez cliqué dans l'événement. Vous devrez expliquer plus clairement comment cela ne suffit pas et ce que vous obtiendrez du XAML que vous n'avez pas maintenant. –

+0

Le nom fonctionnerait aussi bien mais je ne peux pas le faire fonctionner non plus. Savez-vous comment je peux lire la propriété de nom du contrôle XAML et stocker c'est une chaîne en C#? J'ai essayé des choses comme: string buttonName = this.Name; mais cela ne retourne pas le nom. –

Répondre

0
private void Home_Click(object sender, RoutedEventArgs e) 
    { 
     var button = sender as RadioButton; 
     if (button != null) 
     { 
      switch (button.Tag.ToString()) 
      { 
       case "Home": 
        this.MyFrame.Navigate(typeof(Views.Home_Page)); 
        break; 
       case "Settings": 
        this.MyFrame.Navigate(typeof(Views.Settings_Page)); 
        break; 
      } 
      Header.Text = button.Tag.ToString(); 
     } 
    } 

To more options

0

Pourquoi ne pas simplement jeté l'expéditeur comme Button, puis jeté la button.Tag sous forme de chaîne?

Button _sender = sender as Button; 
string tag = _sender.Tag as string; 

Et puis bien sûr, vous pouvez faire un changement sur la valeur de l'étiquette pour savoir quel bouton était l'expéditeur.