Wpf 单选列表框将所选项目发送到另一个列表框

Wpf 单选列表框将所选项目发送到另一个列表框,wpf,list,listbox,selection,selecteditem,Wpf,List,Listbox,Selection,Selecteditem,我尝试了很多选择,但没有一个能让我更接近结果 我对WPF真的是个新手,所以我很抱歉提出了一个可能很琐碎的问题。 我有一个选择列表框,我需要将选择的项添加到另一个列表框中。我试图创建一个列表,在鼠标单击时将所选项目添加到此列表,然后将另一个列表框绑定到此列表。我试着宣布 chosen_list.SelectedValue=selection_list.SelectedItem; 我试图创建一个可观察的集合,但没有任何效果。 我在第二个列表框中得到的只是第一个选择的值 有没有一种方法可以在不使用可

我尝试了很多选择,但没有一个能让我更接近结果

我对WPF真的是个新手,所以我很抱歉提出了一个可能很琐碎的问题。 我有一个选择
列表框
,我需要将
选择的
项添加到另一个列表框中。我试图创建一个列表,在
鼠标单击时将所选项目添加到此列表,然后将另一个列表框绑定到此列表。我试着宣布

chosen_list.SelectedValue=selection_list.SelectedItem;
我试图创建一个可观察的集合,但没有任何效果。 我在第二个列表框中得到的只是第一个选择的值

有没有一种方法可以在不使用可观察集合的情况下实现这一点


请提前帮助并感谢您。

您可以使用event selection Changed

正如Mustafa所说(他本可以详细阐述一下),这是一项需要在每次在第一个列表中进行新选择时实施的操作。因此,我将连接您的第一个列表中的“SelectionChanged”事件。在这个事件处理程序中,您可以清除第二个列表的内容,并将新选择的项添加到第二个列表中

下面是一个非常简单的例子来说明我的意思:

以下是XAML页面:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.5*" />
        <ColumnDefinition Width="0.5*" />
    </Grid.ColumnDefinitions>
    <ListBox x:Name="lstFirstList" Grid.Column="0" SelectionChanged="ListBox_SelectionChanged">
        <ListBoxItem Content="This is a test 1" />
        <ListBoxItem Content="This is a test 2" />
        <ListBoxItem Content="This is a test 3" />
        <ListBoxItem Content="This is a test 4" />
        <ListBoxItem Content="This is a test 5" />
        <ListBoxItem Content="This is a test 6" />
        <ListBoxItem Content="This is a test 7" />
        <ListBoxItem Content="This is a test 8" />
        <ListBoxItem Content="This is a test 9" />
        <ListBoxItem Content="This is a test 10" />
    </ListBox>
    <ListBox x:Name="lstSecondList" Grid.Column="1">

    </ListBox>
    </Grid>
</Window>

下面是背后的代码:

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        lstSecondList.Items.Clear();
        if (e.AddedItems.Count != 0)
        {
            ListBoxItem vSelectedItem = (ListBoxItem)e.AddedItems[0];
            ListBoxItem vNewItem = new ListBoxItem();
            vNewItem.Content = vSelectedItem.Content;
            lstSecondList.Items.Add(vNewItem);
        }
    }
}
//
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有无效列表框\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
lstSecondList.Items.Clear();
如果(e.AddedItems.Count!=0)
{
ListBoxItem vSelectedItem=(ListBoxItem)e.AddedItems[0];
ListBoxItem VneItem=新建ListBoxItem();
vNewItem.Content=vSelectedItem.Content;
lstSecondList.Items.Add(vneItem);
}
}
}

现在可能有更好的方法来做这件事,但至少应该让你开始

如果有人知道如何通过纯绑定实现这一点,我会很感兴趣。。。。我的“潜意识”说这应该是可能的