将项添加到ListBox

时间:2011-09-29 17:53:51

标签: c# wpf listbox

我有一个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);
    }

1 个答案:

答案 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声明为全局公共属性,并从同一名称空间中的其余类访问它。