2013-03-07 2 views
0

데이터 바인딩에 도움이 필요합니다. 이 상황을 상상해보십시오. Isotope라는 또 다른 Photon이라는 두 개의 클래스가 있습니다. 클래스 동위 원소에는 BindingList Photons가 포함되어 있습니다. 정적 클래스 StaticVariables도 있습니다. 여기서 BindingList Isotopes를 넣습니다. 이제는 동위 원소 목록을 검색 할 수있는 양식을 만들고 싶습니다.개체 컬렉션에 컨트롤 바인딩

CBIsotope.DataSource = StaticVariables.Isotopes; 
CBIsotope.ValueMember = "IsotopeName"; 
CBIsotope.DisplayMember = "IsotopeName"; 

지금까지, 모든 작품 : 나는 StaticVariables.Isotopes에 바인딩 것으로, 콤보 상자의 CBIsotopes를 만들었습니다. 이제 선택한 동위 원소의 모든 광자를 표시하는 DataGridview DGVPhotons를 만들고 싶습니다. 내 첫 번째 본능은 무언가를 할 길을 따라 갔다.

DGVPhotons.DataSource = StaticVariables.ListOfIsotopes.Photons 

물론 작동하지 않는다. 내가 노력하는 또 다른 점은 콤보 상자의 selectedItem 속성을 사용하는 것입니다

(1)

DGVPhotons.DataSource = (CBIsotope.SelectedItem as Isotope).Photons; 

이 작동하지만,하지뿐만 아니라 내가 좋아하는 것처럼. 로드 시간에 수행하면 ComboBox가 비어 있기 때문에 아무 일도 발생하지 않습니다. ComboBox에서 실제로 항목을 선택하면 작동하지만 ComboBox에서 선택 항목을 변경하면 DataGridView도 그대로 유지됩니다. 솔루션은 ComboBox의 SelectedIndexChanged에 line (1)을 삽입하는 것이지만 내게는 무차별적인 방법처럼 보입니다. 내 접근 방식이 근본적으로 잘못되었다고 생각합니다. 좀 더 우아한 해결책이 있습니까?

답변

0

여기 키는 DataBind 솔루션을 사용하는 것입니다. 요소의 source을 변경 한 후에는 새 데이터를 바인딩하기 위해 DataBind 메서드를 사용하는 것을 잊지 마세요.

또한 PageLoad 이벤트에서 처음으로 요청을 처리 할 때만 페이지를 초기화하려면 IsPostBack 기호를 잊지 마세요.

관련 문제