2013-07-08 1 views
0

안녕하세요, bindingsource에 바인딩하는 사전이 있습니다. 목록 상자에 키를 표시하고 싶습니다. 그래서 바인딩 소스를리스트 박스에 추가하고 displaymember를 "Key"로 설정합니다. 이것은 작동하지 않습니다.C# dictionary가 목록 상자에 바인드되었습니다.

 bs_directions.DataSource = bs_measurements; 
     bs_directions.DataMember = "zielwertdict"; //(=Dictionary<string,list<object>>) 

     listBox3.DataSource = bs_directions; 
     listBox3.DisplayMember = "Key"; 

UPDATE : bs_measurements 다른 목록 상자에 바인딩 다른 목록입니다 그것은 나에게 대신 키 문자열의 사전 있으며, toString ... 사용

코드를 제공합니다. 프로젝트를 빌드 할 때 listBox3은 사전의 키를 표시합니다. bs_measurement에 바인딩 된 목록 상자의 항목을 변경하면 listbox3이 사전을 표시합니다 .Tostring() 작업 ... 매우 이상한 작업 ...

업데이트 2 : bs_measurment 목록에 포함 된 개체는 사전 zielwerdict)와 해시 테이블 : 위의 예 bs_directions.DataMember에서

public class bs_measurementOBject 
{ 
public string name; 
public SortedDictionary<string,list>object>> zielwertlist; 
public Hashtable block; 
} 
+0

당신은 즉, 새로운 BindingSource에에 데이터 소스를 설정해야 할 수도 있습니다; bs_directions.DataSource = 새 BindingSource (bs_measurements, null); –

+0

이것은 아무 것도 바뀌지 않습니다. – benst

답변

0

은 NULL이어야한다

+0

왜 NULL이되어야하는지에 대해 좀 더 많은 정보를 주길 바랍니다 ... – benst

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms를보십시오. bindingsource.datamember % 28v = vs.90 % 29.aspx "데이터 소스에 여러 목록 (또는 표)의 데이터가 포함되어있는 경우 DataMember 속성을 소스 중 하나의 이름으로 설정해야합니다." 하지만 너는 단 하나에 구속력이있어, 맞지? – Winks

+0

bs_measurment 목록에 포함 된 객체에는 사전 (zielwerdict)과 해시 테이블이 있습니다. – benst

관련 문제