2010-04-16 4 views
1

많은 콤보 상자가 포함될 대형 프로젝트를 개발하려고합니다.콤보 상자를 바인딩하는 가장 좋은 방법

대부분의 콤보 상자는 다른 daataset/table과 관련된 데이터베이스 필드에 바인딩됩니다.

예를 들어. 다음 2 개 테이블

내가 가진 :

회사 {회사 ID, 회사 명, MainContact}
연락처 {ContactID가, 연락처 이름}

그리고 사용자가 회사를 편집 할 수 클릭 할 때, 텍스트 상자는 것이다 회사 이름을 편집 할 수있을뿐만 아니라 ComboBox도있을 것입니다.

현재 내가하고있는 방법은 연락처 데이터 집합에 ComboBox를 바인딩하고 수동으로 코드의 Company MainContact 필드를 업데이트하는 것입니다.

XAML의 Company MainContact 필드와 ContactName의 항목에 선택한 항목을 바인딩하고 코드 숨김을 제거 할 수 있습니까?

이유는 응용 프로그램 전체에서 100 개의 콤보 상자를 만들기 시작할 때입니다. 업데이트를 수행 할 때마다 코드를 작성할 때마다 시간이 오래갑니다.

이 모든 것이 가능합니까?

답변

2

우선, MVVM 디자인 패턴을 응용 프로그램에 사용하는 것이 좋습니다. MVVM 응용 프로그램에서 데이터 바인딩 및 명령만으로 엄청난 시간을 절약 할 수 있습니다.

어쨌든, 내 가두 연설을 하차 제대로 콤보 상자 바인딩하는 방법을 말할 것이다 : 당신이 볼 수 있듯이, ItemsSource이 연락처 데이터 집합에 바인딩

<ComboBox ItemsSource="{Binding Contacts}" DisplayMemberPath="ContactName" 
    SelectedValue="{Binding Path=Company.MainContact, 
    UpdateSourceTrigger=PropertyChanged}" 
    SelectedValuePath="ContactName"/> 

을하지만, 때 사용자를 목록에서 항목을 선택하면 Company.MainContact 필드가 선택한 연락처로 업데이트됩니다.

+0

고마워요. 그리고 MVVM이 어떻게 유리한 지 궁금합니다. 이것은 완벽 해 보인다. 다음 질문에 도움이 될지 궁금합니다. http://stackoverflow.com/questions/2653096/why-use-mvvm –

+0

감사합니다! MVVM을 연구하고 구현하기로 결정했습니다. 하지만 바인딩 예제에 감사드립니다! 내가 더 많은 기사를 줄 수 있기를 빌어. –

+0

문제 없습니다. 내가 도울 수있어서 기뻐요! – Brent

관련 문제