使用e.added进行列表框多选

时间:2011-01-10 15:21:08

标签: c# wpf listbox

我需要一些帮助在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 };//??


    }

4 个答案:

答案 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());
}