在我的项目中,我创建了一个包含string
和elementId
键值对的列表。制作列表的原因是因为我想稍后在代码中将所有项目添加到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 :(得分: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>