2014-09-17 2 views
0

최근 C# Windows Forms 프로그램에 문제가 있습니다. 나는 combobox에 구속력이있는 사전을 가지고있다. 콤보 상자 바인딩 문제

private Dictionary<String, List<TaskDueDate>> m_IndividualSheetDetails = new Dictionary<string, List<TaskDueDate>>(); 
m_CboxPerson.DisplayMember = "Value"; 
m_CboxPerson.ValueMember = "Key"; 

ValueMember

은 사람의 이름에 해당하는 문자열 값입니다 열쇠입니다. DisplayMember은 개체 목록입니다. Visual Studio에서 테스트 할 때 모든 것이 의심 스러우며 combox 상자에 이름 목록이 채워집니다. 이것은 콤보 상자의 모양입니다. 이 동안

enter image description here

한 번 설치하고 컴퓨터에서 실행처럼 콤보가 실제로 모습입니다.

enter image description here

은 분명히 그렇게 내가 가지고있는 모든 링크 인 이미지를 게시 할 열 개 대표가 필요. 다른 컴퓨터에 응용 프로그램을 배포하고 설치하려면 clickonce 배포를 사용하고 있습니다. 왜 이것이 응용 프로그램의 설치에서만 발생하는지 확신 할 수 없습니다. 그것은 잘 실행되며 Visual Studio에서해야합니다. 모든 조언을 크게 주시면 감사하겠습니다. 당신은 당신이 원하는의 ValueMember 및 DisplayMember 정확히 반대가 같은 감사

+0

당신이 수도 있어야한다 따라서 표시하고, 콤보 상자의 [Format] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listcontrol.format (v = vs.110) .aspx) 이벤트를 사용하면 거기서보고 싶다. – pushpraj

+0

당신은'ComboBox'의 각 항목에'List'를 바인딩하고 있습니다. 사전을 'BindingList'로 전개합니다. 항목 당 하나의 행을 원한다면 각'List'를'Format'하십시오. – Zer0

+1

_ "Visual Studio에서 테스트 할 때 모든 것이 예상대로 작동합니다"라고 말하면 디자인 타임 중에 의미 하시겠습니까? 아니면 실제로 Visual Studio에서 프로그램을 실행하고 있습니까? –

답변

1

는 소리 .. DisplayMemeber는 "값"있어야 ValueMemeber로 "키",

+0

그 것처럼 보였습니다. 그러나 Visual Studio에서 프로젝트를 실행하면 DisplayMember가 "Key"이고 ValueMember가 "Value"와 같을 때 이미지 2의 결과가 표시됩니다. – Schuhbacca