2016-03-05 4 views
0

Salut avoir un bouton avec événement de clic & liaison de valeur de balise à partir d'un XmlDataProvider;Passer Button_Click Balise vers une autre page WPF C#

<Button x:Name="Open" Tag="{Binding XPath=Id}" Content="Open" Click="OpenProject_Click" /> 

et dans mes xaml.cs cliquez sur le code d'événement (crée de nouveaux TabItem, avec un autre contenu de la page);

private void Open_Click(object sender, RoutedEventArgs e) 
    { 
       var ID = ((Button)sender).Tag; 

       TabItem tabitem = new TabItem(); 
       tabitem.Header = ID; 
       tabitem.Tag = ID; 
       Frame tabFrame = new Frame(); 
       Pages.Views.View newTab = new Pages.Views.View(ID); 
       tabFrame.Content = newTab; 
       tabitem.Content = tabFrame; 
       AppTabs.Items.Add(tabitem); 
       tabitem.Focus(); 

    } 

Ci-dessous est mon code d'autre page;

public partial class View : Page 
{ 
    Object valueFromPage1; 

    public View() 
    { 
     InitializeComponent(); 
    } 

    public View(Object val) 
     : this() 
    { 
     valueFromPage1 = val; 
     this.Loaded += new RoutedEventHandler(View_Loaded); 

    } 
    void View_Loaded(object sender, RoutedEventArgs e) 
    { 
     text.Text = "Value passed from page1 is: " + valueFromPage1; 
    } 
} 

Le problème est que la valeur qui apparaît sur l'autre page System.Xml.XmlElement quand il besoin d'être la valeur d'identification (qui est un numéro). Y at-il loin de convertir le System.Xml.XmlElement à la valeur button.Tag?

Répondre

1

Que la valeur s'affiche sous la forme "System.Xml.XmlElement" indique que le tag est XmlElement. Il a un attribut InnerText qui contient sa valeur (qui devrait être l'identifiant que vous recherchez).

var ID = (((Button)sender).Tag as XmlElement).InnerText; 
+0

semble accepter ce code, mais la sortie sort vide .. – BENN1TH

+0

@ BENN1TH Je ne suis pas sûr de ce que votre XML ressemble, vous pouvez essayer d'utiliser les propriétés '' InnerText' et InnerHtml', peut-être qu'ils reviennent la valeur correcte. – Domysee

+0

InnerText a fonctionné! Merci beaucoup pour votre aide. – BENN1TH