2016-11-18 2 views
0

내 프로젝트에서 키 값 쌍이 stringelementId 인 목록을 작성 중입니다. 목록에있는 이유는 코드에서 나중에 모든 항목을 checkedListBox에 추가하려고하기 때문입니다. 내가 요소의 내 컬렉션이있을 때C# KeyValuePair 다중 열 CheckedListBox에 대한 목록

List<KeyValuePair<string, ElementId>> kvPairs = new List<KeyValuePair<string, ElementId>>(); 

, 내가 요소 이름과 키 - 값 쌍에 대한 요소 ID를 추가하고하는 것은 : 내가 다음에 수행 할

foreach (Element viewElement in viewCollector) 
{ 
    kvPairs.Add(new KeyValuePair<string, ElementId>(viewElement.Name, viewElement.Id)); 
} 

,이 키를 추가입니다 값 쌍을 checkedListBox으로 바꾸고 여기서 이름은 elementId의 별도 열에 추가됩니다.

하지만 두 번째 열을 추가하는 위치/방법을 찾는 것 같습니다. checkedListBox.Items.Add()에 여러 열에 쓰는 오버로드 방법이없는 것 같습니다.

편집 :

WinForms 사용.

또한 전체 checkedListBox.MultiColumn은 열을 정의 할 방법이 없다면 의미가없는 것처럼 보입니다. 나는 정말로 여기에서 혼란스러워한다.

+0

윈폼, WPF, ...? – Jim

+0

@Jim Winforms – Dante1986

+1

을 사용하여 죄송합니다. CheckedListBox를 사용하여이 작업을 수행 할 수 없으므로 * DataGridView * 또는 * ListView *를 사용해보십시오. – Jim

답변

1

아니라 지금까지 내가 아는 한, 당신은 두 번째 열을 추가 할 수 있지만,이 같은 방법으로 SelectedListBox ItemTemplate을을 무시할 수 :

그럼 당신 필요에 따라 바인딩 조절 않는이 -하지만이 해결한다 . 아마 당신은 더 나은 당신을 위해 운동 뭔가 불구하고 StackPanel을 변경하려면

<ListBox > 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <ListBoxItem IsSelected="{Binding IsChecked}"> 
        <StackPanel > 
         <CheckBox IsChecked="{Binding IsChecked}" Content="{Binding Path=...}" /> 
         <Label Content="{Binding Path=...}"></Label> 
         <Label Content="{Binding Path=...}"></Label> 
        </StackPanel> 
       </ListBoxItem> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
+0

어떻게 OP가 WPF를 사용한다고 가정합니까? – Jim

+0

Mh, 그럼 당신은 completly 맞습니다 - 난 그냥 체크 잘하고 WinForms에 CheckedListBox뿐만 아니라, 나는 몰랐다. @ Dante1986 winforms이 필요한 경우 알려주십시오 수 있습니까? 나는 내 대답을 바꿀 수있다. – TripleEEE

+0

@TripleEEE 불확실한 beeing에 대해 유감스럽게 생각한다. 임 winforms를 사용하여. 이상하게도 체크리스트 박스는'checkedListBox.MultiColumn = true'를 가지고 있지만 아무 일도하지 않고 어떻게 동작해야하는지 전혀 모른다. – Dante1986