2011-09-29 8 views
0

단추가있는 도구 모음과 목록 상자가있는 페이지를 표시하는 tabcontrol이 포함 된 WPF 주 창을 사용하고 있습니다. 이 페이지는 프레임에 호스팅되고 선택한 프레임에 프레임이 설정됩니다.ListBox에 항목 추가

툴바의 버튼을 클릭하면 텍스트 상자와 제출 버튼이있는 새 창이 팝업됩니다. 제출 버튼을 누르면 기본 창에있는 목록 상자에 텍스트 상자 내용을 삽입하려고합니다. 그러나 아무 것도 목록 상자에 표시되지 않습니다. 난 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

'CampersPage c;'이 후,'c'는 어디에도 초기화되지 않습니다. 어딘가에 삼켜지고있는 NullReferenceException이있을 수 있습니다. –

+0

그리고 나는 문자열 텍스트를 int로 올바른 방법으로 변환하고 있다고 생각하지 않는다. – TMan

+0

참으로 나는 무슨 뜻인지 안다. 그러나 만약 내가 camperPage를 만들면 c = new camperPage, 그리고 나서 그것은 메인 윈도우 코드에서 이미 생성 된 완전히 새로운 페이지입니다. – TMan

답변

0

다음 방법 중 하나를 수행 할 수 있습니다. 그러나 당신의 의견에 따라 솔루션 3이 당신에게 어울리다고 생각합니다.

1) 먼저 c를 초기화 해보십시오. 개체에 메모리를 할당하지 않으면 개체를 사용할 수 없습니다.

2) 동일한 개체를 사용하려면 필수 클래스의 MainWindow 에서 만든 개체의 참조를 사용하십시오. 이 같은 뭔가 작업을해야합니다 :

CampersPage의 C = [MainWindow를에 CampersPage 객체에 대한 참조]를 다음 목록 상자

3) 목록 상자 객체를 사용하려는 경우, CampersPage을에 항목을 추가 정적 클래스입니다. 정적으로 만들면 클래스를 명시 적으로 초기화 할 필요가 없습니다.

public static CampersPage { 
// do something here 
} 

CampersPage의 목록 상자를 public으로 선언해야합니다. 클래스가 같은 공간에있는 경우 CampersPage에 정의 된 사용자의 목록 상자를 필요로하는 클래스의 다음

다음

CampersPage.testListBox.Items.Add(txtNewFirstName.Text); 

4), 당신은 글로벌 공공 재산과 나머지 액세스를 같이리스트 박스를 선언 할 수 않습니다 동일한 네임 스페이스에있는 클래스 중 하나를 선택합니다.

+0

네 Idk 어떻게 할 것이라고. 죄송합니다. 바보 같으면 – TMan

+0

CampaignPage 클래스를 정적으로 선언해야합니다. 답변에서 편집을보세요. – krammer