将 Button_Click 标记传递到另一个页面 WPF C#
Passing Button_Click Tag to another page WPF C#
您好,有一个按钮带有来自 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;
}
}
问题是当它需要是 ID 值(这是一个数字)时,在另一页上显示为 System.Xml.XmlElement 的值。是否可以将 System.Xml.XmlElement 转换回 button.Tag 值?
值显示为 "System.Xml.XmlElement"
表示标签是一个 XmlElement
. It has an attribute InnerText
,其中包含其值(应该是您要查找的 ID)。
var ID = (((Button)sender).Tag as XmlElement).InnerText;
您好,有一个按钮带有来自 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;
}
}
问题是当它需要是 ID 值(这是一个数字)时,在另一页上显示为 System.Xml.XmlElement 的值。是否可以将 System.Xml.XmlElement 转换回 button.Tag 值?
值显示为 "System.Xml.XmlElement"
表示标签是一个 XmlElement
. It has an attribute InnerText
,其中包含其值(应该是您要查找的 ID)。
var ID = (((Button)sender).Tag as XmlElement).InnerText;