public partial class Person : Window
{
private static TabControl tabControl;
public Person()
{
InitializeComponent();
tabControl = new TabControl();
grid.Children.Add(tabControl);
}
public void someMethod(String name){
TabItem newTab = new TabItem();
newTab.Header = name;
tabControl.Items.Add(newTab);
}
}
public class Update{
public void createGUI(String name){
Person newPerson = new Person();
newPerson.someMethod(name);
}
}
在创建类之后的某个时刻,someMethod方法在另一个类中被称为。它在InitializeComponent和构造函数中的所有内容之后调用。但是,即使在someMethod完成后,选项卡控件仍然没有选项卡。
编辑:为了澄清,Update方法仅在应用程序的生命周期内调用一次。我只想要一个Person实例。
答案 0 :(得分:3)
public void createGUI(String name){
Person newPerson = new Person();
newPerson.someMethod(name);
}
在那里,您正在创建一个新的Person对象,它与正在向您显示的对象完全无关。这个新对象实际上从未在任何地方显示过,所以无论你改变什么,都不会被你看到。
相反,您需要更改实际存在并显示的Person对象。
或者,您也可以使用newPerson.Show()
显示新对象,但这会打开一个新窗口而不会更改现有窗口。
答案 1 :(得分:2)
原因很简单,每次更新时都会创建Person类的新实例,因此一个实例中的更改不能反映在另一个实例中。