2012-09-07 4 views
1

저는 Visual Basic 5를 Visual Basic .NET으로 최근에 바꿨습니다. Visual Basic 5를 사용하여 작성한 Windows Forms의 이전 프로그램을 WPF & VB.NET으로 변환하는 방법을 배우려하고 있습니다.여러 소스를 사용하는 Combobox 데이터 바인딩

이전 프로그램에는 액세스 데이터베이스 (item_id 및 item_description이있는 간단한 테이블)에서로드 된 정보가있는 콤보 상자가 있습니다. 콤보 상자의 항목을 클릭하면 ID가 클래스의 정보 (데이터베이스의 다른 테이블에 저장 됨)에 저장됩니다.

이제 WPF에서 같은 것을 다시 만들려고합니다.

콤보 박스에서 항목 목록의 항목을 viewmodel 항목 목록에 바인딩하고 선택한 항목을 변경할 때 다른보기 모델을 업데이트하는 것이 가능한지 궁금합니다.

이 가능한 경우 나도 몰라 (그리고 솔직히 내가 웹에서 답을 찾기 위해 노력했지만 "콤보 상자 여러 데이터 바인딩은"나는 나에게 도움이되지 않는 정보 찾는 결국 찾고)

답변

1

정말 무슨 뜻인지 잘 모르겠지만 콤보 상자의 내용이 될 itemsource를 설정할 수 있습니다. 콤보 상자의 선택한 값을 다른 속성에 바인딩 할 수도 있습니다. 이 exemple에서

<ComboBox ItemSource="ListItems" SelectedValuePath="item_id" SelectedValue={Binding IdSelected} DisplayMemberPath="item_description"/> 

이 많은 ListItems이 항목을 포함하는 목록이 될 것 SelectedValuePAth는 콤보 상자의 SelectedValue 속성에 의해 반환되는 속성의 이름이됩니다. SelectedValue는이 정보가 필요한 다른 객체의 속성에 바인딩됩니다. DisplayMemberPath는 사용자에게 표시 될 속성입니다.

당신은 도움이

희망 (데이터 세트, 배열 등의 목록)를 수집 꽤 모든 유형이 될 수 CboItem.Itemssource =되는 listItem를 사용하여 런타임에 itemssource을 설정할 수 있습니다.

+0

예, 내 질문이 있어요 ...하지만 IdSelected가 속한 객체를 지정할 위치가 표시되지 않습니다 ... (코드에서 CboItem.itemssource = listItem을 사용하면 ItemSource = "ListItems "XAML에서 그렇습니까?) – doGmaI

+0

IdSelected는 작업하려는 다른 개체에서 나옵니다. 내가하는 일에 대해 조금 더 알지 못한다면 나는 정말로 당신을 직접 도울 수 없다. 그러나, 나는 그물에 관한 좋은 turotials가 있다는 것을 확신한다. 아마 WPFTutorial 그것에 좋은 정보가 있습니다. –

+0

내 실수는 "이상한 생각"때문이었습니다. itemssource는 내가 선택한 ID를 저장하려는 동일한 개체에서 가져온 컬렉션이어야한다고 생각했습니다. 나는 항상 두 개의 viewModel을 동일한 콤보 박스에 연결하려고했기 때문에 문제가있었습니다. 이제 viewModel 올바르게 연결된 DataContext 콤보 상자의 SelectedValue 올바른 속성에 바인딩 된) 및 itemSource 같은 항목의 간단한 컬렉션이 있습니다. 제안 해 주셔서 감사합니다. – doGmaI

관련 문제