2014-03-13 2 views
3

List에서 CheckedListBox에 항목을 추가하고 있습니다. 상자에 사용자에게 항목의 이름을 표시하고 사용자가 선택하면 사용할 "비밀"실제 값을 갖기를 원합니다. 나는 CheckedListBox이 할 수없는 것CheckedListBox에 친숙한 이름 표시

combobox1.Items.Add(new ComboBoxItem { friendlyValue = x, realValue = y }); 

: 뭔가에 표시 이름과 값 이름을 설정하고 같은 것을 사용하는 메뉴 드롭 다운으로

foreach (string s in x) 
{ 
    checkedlistBox1.Items.Add(friendlyValue); 
    //Now how do I get this to have the real value? 
} 

.

+0

이 WinForms입니까? WPF? 편물? –

+0

실제로 양식. –

+0

WinForms, 맞습니까? 때문에 "양식"은 HTML 양식을 말합니다. 혼란을 가져옵니다. :) –

답변

2

DisplayMemberValueMember 속성을 설정합니다.

이들은 기능적으로 의 DisplayNameValueName 속성과 같습니다.

public class MyClass 
{ 
    public string FriendlyValue { get; set; } 
    public string RealValue { get; set; } 
} 

public class YourForm : Form 
{ 
    public YourForm() 
    { 
     var friendlyList 
      = new List<string>(); // imagine it's populated with friendly values 

     foreach (var fv in friendlyList) 
     { 
      checkedListBox1.Items.Add(
       new MyClass { FriendlyValue = fv, RealValue = ??? }); 
     } 

     checkedListBox1.DisplayMember = "FriendlyValue"; 
     checkedListBox1.ValueMember = "RealValue";   
    } 
} 
+0

이것은 옵션으로 제공되지 않습니다. VisualStudio에서 checkedListBox1.DisplayMember를 입력하면 아무 것도 나타나지 않습니다. 그것은 목록에 없습니다. 또한 checkedListBox1.Items.Add에 "CheckedListBoxItem"이라는 항목을 추가 할 수 없습니다. 이것은 네임 스페이스로 존재하는 것이 아닙니다. 2010 년 내 생각에는 CheckedListBoxItem 같은 것은 없습니다. –

+1

@ Seepthus 어떤 이유로 Microsoft는 Intellisense에서 이러한 속성을 숨 깁니다. 하지만 그것을 설정할 때 :) –

+0

intellisense없이 두 속성을 설정하려고했는데 오류가 발생하지 않았으므로이 부분이 작동합니다. 이 값을 목록 상자에 추가하는 것은 어떻습니까? CheckedListBoxItem 사용 제외하고 위의 comboboxitem 예제 비슷한 코드를 사용하여 시도하고 네임 스페이스에 존재하지 않는 오류를 제공합니다. –

관련 문제