我有一个WPF主窗口,其中包含一个带按钮的工具栏和一个显示带有列表框的页面的tabcontrol。页面托管在一个框架上,框架在我选择的选项卡上设置。
当我点击工具栏上的按钮时,会弹出一个带有文本框和提交按钮的新窗口。当我按下提交按钮时,我想将文本框内容插入主窗口的列表框中。但是,列表框中不显示任何内容。我尝试了listbox.Items.Add()但它仍然无法显示。
public partial class AddNewCamper : Window
{
public AddNewCamper()
{
InitializeComponent();
}
private void btnNewSubmit_Click(object sender, RoutedEventArgs e)
{
CampersPage c;
// Converting string to int b/c thats what camper() takes in.
int NewAge = Convert.ToInt16(txtNewAge.Text);
int NewGrade = Convert.ToInt16(txtNewGrade.Text);
// Create a new person
Camper person = new Camper(NewAge, NewGrade, txtNewFirstName.Text);
txtNewFirstName.Text = person.getName();
// Trying to add the first name of the person to display on the listbox of another window.
c.testListBox.Items.Add(txtNewFirstName.Text);
}
答案 0 :(得分:0)
您可以按照以下任何一种方法操作。但根据您的意见,我认为解决方案3适合您。
1)首先尝试初始化c。如果没有为其分配内存,则无法使用对象。
2)如果要使用同一个对象,请使用MainWindow中创建的对象的引用 在所需的课程中。 这样的事情应该有效:
CampersPage c = [对MainWindow中的CampersPage对象的引用]
然后将项目添加到列表框
3)如果要使用列表框对象,请将您的CampersPage类设为静态。 将其设为静态不需要您明确初始化您的类。
public static CampersPage {
// do something here
}
确保您将CampersPage中的列表框声明为公开。
然后在需要在CampersPage中定义列表框的班级中,执行以下操作
CampersPage.testListBox.Items.Add(txtNewFirstName.Text);
4)如果类在同一名称空间中,则可以将listbox声明为全局公共属性,并从同一名称空间中的其余类访问它。