组合框选择将填充一个列表框,该列表框将从平面文件中读取服务器列表

时间:2019-07-17 18:55:48

标签: c# wpf

我想根据组合框下拉列表中的选择,用平面文件中的服务器列表填充列表框。这就是我所拥有的,但是它没有填充列表框。。谢谢!

    private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (ComboBox.SelectedItem.ToString() == "Choice1")
        {
            Listbox1.ItemsSource = null;
            Listbox1.Items.Clear();
            Listbox1.ItemsSource = File.ReadAllLines(@"C:\temp\serverlist1.txt");
        }
        return;
    }

这是XAML,

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <ComboBox x:Name="ComboBox" Grid.Column="0" SelectionChanged="ComboBox_SelectionChanged">
        <ComboBoxItem Content="Choice1"/>
        <ComboBoxItem Content="Choice2"/>
    </ComboBox>
    <ListBox x:Name="Listbox1" Grid.Column="1" />
</Grid>

1 个答案:

答案 0 :(得分:2)

您的代码中唯一的错误是您将ComboBox SelectedItem字符串与“ Choice”进行比较,这将永远不会相等。您需要首先将SelectedItem解析为ComboBoxItem,然后将ComboBoxItem的Content与所需的字符串进行比较。以下是演示,

    private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
        if (((ComboBoxItem)comboBox1.SelectedItem).Content.Equals("Choice1"))
            {
            listBox1.ItemsSource = null;
            listBox1.Items.Clear();
            listBox1.ItemsSource = File.ReadAllLines(@"C:\application1\serverlist1.txt");
            }
        return;
        }