2016-11-18 18 views
0

私のプロジェクトでは、キーと値のペアがstringelementIdのリストを作成しています。リストを作成するのは、後でコード内のすべてのアイテムをcheckedListBoxに追加したいからです。c#KeyValuePairからMulticolumn 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)); 
} 

私は次何をしたいのか、これらのキーを追加していますこの値がelementIdの別の列に追加されたcheckedListBoxに値のペアを追加します。

しかし、2番目の列を追加する場所/方法はわかりません。 checkedListBox.Items.Add()に複数の列に書き込むオーバーロード方法はないようです。

編集:

WinFormsの使用。

また、列全体を定義する方法がないと、checkedListBox.MultiColumn全体が意味を持たないようです。私は本当にここで混乱している。

+0

Winformsの、WPF、...? – Jim

+0

@Jim Winformsを使用して – Dante1986

+1

これは 'CheckedListBox'ではできません。* DataGridView *または* ListView *の使用を検討してください。 – Jim

答えて

1

だけでなく、私の知る限り、2番目の列を追加することはできませんが、このような方法で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、まあまあ、あなたは完全に正しいです - 私はちょうどチェックし、よくWinFormsにCheckedListBoxがあります、私はそれを知らなかった。 @ Dante1986あなたがwinformsのためにこれを必要とするかどうかお知らせください。私は私の答えを変更することができます – TripleEEE

+0

@TripleEEE beeing不明の申し訳ありません。私はwinformsを使用しています。奇妙なことに、チェックリストボックスには 'checkedListBox.MultiColumn = true'がありますが、何かやそれが動作するかどうかはわかりません。 – Dante1986

関連する問題