我需要一些帮助在listBbox控件上实现多选。目前,我可以使用下面的代码显示一个选择的信息,但是我不认为可以在我的itemsSource中使用e.added来启用多选。非常感谢任何帮助。谢谢 - 本
private void contactsList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
//TODO: Add event handler implementation here.
ContactList selectedContact = contactsList.SelectedItem as ContactList;
tagsList.ItemsSource = new List<ContactList> { selectedContact };//??
}
答案 0 :(得分:0)
多选功能内置于列表框控件...
您是否设置了ListBox.SelectionMode? http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.selectionmode.aspx
答案 1 :(得分:0)
列表框中的多选项是通过将列表框实例上的SelectionMode属性设置为Extended或Multiple来实现的(扩展意味着您需要按住SHIFT键,而不需要使用Multiple)。
lstBox.SelectionMode = System.Windows.Controls.SelectionMode.Extended;
要访问所选项目,您将获得 lstBox.SelectedItems 属性的值。
在您给出的示例中 - 您可以执行与以下类似的操作:
tagsList.ItemsSource = contactList.SelectedItems;
希望这会有所帮助:)
答案 2 :(得分:0)
你的问题难以理解和模糊,我只是假设你想将tagsList.ItemsSource设置为所有选定的ContactLists。
private void contactsList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
List<ContactList> list = new List<ContactList>();
foreach (object contactList in contactsList.SelectedItems)
{
list.Add(contactList as ContactList);
}
tagsList.ItemsSource = list;
}
编辑:如果你实际上没有设置ListBox.SelectionMode
,你当然应该先做。{/ p>
答案 3 :(得分:0)
试试这个。当使用tagsList
contactsList
上进行选择时,它会将项目添加到e.AddedItems
private void contactsList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
tagsList.Items.Add(((ListBoxItem)e.AddedItems[0]).Content.ToString());
}