2016-03-05 21 views
0

您好有一個單擊事件按鈕&標記值綁定從XmlDataProvider;將Button_Click標記傳遞給另一頁WPF C#

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

並在我的xaml.cs中單擊事件代碼(創建新的TabItem和其他頁面內容);

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(); 

    } 

下面是我的其他頁面的代碼;

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

問題是,與其它頁面作爲System.Xml.XmlElement上出現的值,當它需要是ID值(這是一個數字)。有沒有將System.Xml.XmlElement轉換回button.Tag值?

回答

1

值顯示爲"System.Xml.XmlElement"表示該標籤爲XmlElement。它有一個屬性InnerText包含它的值(這應該是你正在尋找的Id)。

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

似乎接受了這些代碼,但輸出是走出空.. – BENN1TH

+0

@ BENN1TH我不知道你的XML是什麼樣子,你可以嘗試使用'InnerText'和'InnerHtml'特性,也許他們迴歸正確的價值。 – Domysee

+0

InnerText工作!非常感謝你的幫助。 – BENN1TH