0

您好,有一个带有来自 XmlDataProvider 的单击事件和标记值绑定的按钮;

<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 值?

4

1 回答 1

1

该值显示为"System.Xml.XmlElement"表示该标签是一个XmlElement. 它有一个InnerText包含其值的属性(应该是您要查找的 Id)。

var ID = (((Button)sender).Tag as XmlElement).InnerText;
于 2016-03-05T07:04:38.263 回答