2013-08-19 2 views
0

페이지 1의 콤보 상자에 MainWindow 페이지에있는 다른 콤보 상자에 포함 된 선택한 이름의 주소 정보를 채워야합니다. 아래 코드를 시도했지만 MainWindow의 콤보 상자 이름이 인식되지 않습니다.wpf에서 두 페이지 바인드

MainWindow를 :

private void displayParts() 
    { 
     try 
     { 
      sc.Open(); 
      string Query = "select * from Parts"; 
      SqlCommand createCommand = new SqlCommand(Query, sc); 
      SqlDataReader dr = createCommand.ExecuteReader(); 
      while (dr.Read()) 
      { 
       string Name = dr.GetString(1); 

       cbParts.Items.Add(Name);//Displaying a list in the Combo Box 
      } 
      sc.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

페이지 1 :

private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e) 
    {    
     string constring = "Data Source=.;Initial Catalog=**.MDF;Integrated Security=True"; 
     DataContext=MainWindow. 
     string Query = "select * from Partners where Name='" + cbParts.SelectedItem.ToString() + "' ;"; 
     SqlConnection conDataBase = new SqlConnection(constring); 
     SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase); 
     SqlDataReader myReader; 

     try 
     { 


      sc.Open(); 
      myReader = cmdDataBase.ExecuteReader(); 
      if (myReader.Read()) 
      { 
       txtPartner.Text = myReader["Name"].ToString(); 
      } 

      myReader.Close(); 


      sc.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
+0

여기에 예외가 정확히 무엇입니까? 페이지 1의 –

+0

cbParts가 인식되지 않습니다 - "cbParts가 현재 컨텍스트에서 인식되지 않습니다." – user2631662

답변

0
// may need to cast this to your MainWindow's type 
var mainWindow = Application.Current.MainWindow; 

//... 

mainWindow.cbParts.Items.Add(Name); 

또한, 당신이 ObservableCollection 특성에 콤보 상자를 결합하고, 컬렉션에 항목을 추가 할 수 있습니다.

관련 문제