2014-12-19 2 views
1

previous question과 비슷하지만 .NET 4.5의 경우에는 시도 할 때 허용되는 대답이 작동하지 않습니다.ComboBox의 데이터 소스로 사전

사전에서 ComboBox를 채우려고합니다. 컴파일러 오류는 없지만 ArgumentException이 발생합니다 : "복잡한 DataBinding은 IList 또는 IListSource 중 하나의 데이터 소스로 받아들입니다". 그게 내가 구속력있는 방법이라고 생각하게 만든다. ComboBox는리스트가 단지 하나의 차원이기 때문에 하나 또는 둘 중 하나를 채우도록 할 것이다.

간체 코드 :

Dictionary<string,string> orgs = await api.CreateOrgMap(); 
organizationListComboBox.DataSource = orgs; 

내가 키와 값 필드와 객체의 목록을 사용할 수 있지만, 사전 해야 작업을 바보 보인다 보너스 객체에 끝납니다. 내가 잘못하고있는 것은 무엇인가/더 이상 가능하지 않은가?

차이가 있는지 확실하지 않지만 WinForms를 사용하고 있습니다.

+0

당신은, 키와 값이 모두 목록에 표시 하시겠습니까 당신이 달성하려고하는 무엇이다? – SwDevMan81

+0

Nope. ComboBox에서 Key를 선택하고 일치하는 Value를 가져올 수 있어야합니다. 사전 키를 통해 검색하면 잘못된 방향으로 보이게됩니다. –

+0

참조하는 질문에 제공된 해결 방법에 문제가있는 것을 게시 할 수 있습니까? http://stackoverflow.com/a/6412893/95573 – SwDevMan81

답변

2

참조 된 주제의 예를 따르지 않았을 수 있습니다.

organization.ListComboBox.DataSource = orgs; 

은 다음과 같아야합니다

organization.ListComboBox.DataSource = new BindingSource(orgs, null); 
+1

... 감사합니다! 그 생성자를 시도했지만, 답안에 쓰여있는 것을 정확히 건너 뛰어야 만합니다 ._ –

+0

방금 ​​시도했지만 응답을 upvote하기에 충분한 담당자가 없지만 다시 한 번 감사드립니다! –

+0

감사합니다. 위대한 작품입니다. 이것은 낙찰가입니다! 표시된 대괄호를 없애는 방법을 알고 있습니까? [.. 값 ..] –

0

저는 List의 모든 것을 VB.NET에서 사용합니다. 사전도 같은 방식으로 작동해야합니다.

cmbox.DataSource = GetStores(); //this function is returning a list 
cmbox.DisplayMember = "Joined"; //this is a property for an item in the list 
cmbox.ValueMember = "ID"; //this is another property for an item in the list 

= 가입 키 ID = 값 - 또는 바이스 반대 는 C# 번역이 정확한지, 그리고 희망이 도움이되기를 바랍니다.

사전을 반복하여 목록 IE가 키를 놓은 다음 목록을 콤보 상자에 던지기가 더 쉬울 수도 있습니다. 콤보 상자의 키를 사용하지 않기 때문입니다.

+0

이 경우 GetStores()는 List <문자열 ID, 문자열 결합>에 해당하는 객체를 반환합니다. –

+0

그래, 사전이 키와 값으로 동일하게 수행 할 수 있다고 생각하는 이유입니다. (GetStores())는 많은 속성을 반환하지만 콤보 상자에는 두 개만 사용하고 있습니다. – nward32

관련 문제