正如 Mustafa sais 所说(他本可以详细说明一下),这是每次在第一个列表中进行新选择时都需要执行的操作。因此,我将连接您的第一个列表的“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);
}
}
}
现在可能有更好的方法来做到这一点,但至少这应该让你开始!