[英]C# WPF Combobox selection event based on Combobox list populated from text file
我有一個從文本文件填充的 Combobox 下拉列表。 combobox 填充了多個服務器組。 這工作正常。
servergroups.txt
Group1
Group2
Group3
public MainWindow()
{
InitializeComponent();
ComboBox2.ItemsSource = File.ReadAllLines(@"c:\temp\servergroups.txt");
}
我遇到的問題是,我還試圖根據在 combobox 中選擇的服務器組從服務器文本文件填充服務器列表框。
group1.txt
server1
server2
server3
private void ComboBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (((ComboBoxItem)ComboBox2.SelectedItem).Content.Equals("Group1"))
{
Listbox1.ItemsSource = null;
Listbox1.Items.Clear();
Listbox1.ItemsSource = File.ReadAllLines(@"c:\temp\Group1.txt");
Listbox1.ScrollIntoView(Listbox1.Items[0]);
}
當我 select combobox 下拉列表中的任何項目時,我收到以下異常
System.InvalidCastException:“無法將類型為‘System.String’的 object 轉換為類型‘System.Windows.Controls.ComboBoxItem’。”
謝謝你!
錯誤消息清楚地表明SelectedItem
的類型為string
。
當您將字符串集合分配給Selector的ItemsSource
屬性時, SelectedItem
也是一個字符串:
if ((string)ComboBox2.SelectedItem == "Group1")
{
Listbox1.ItemsSource = File.ReadAllLines(@"c:\temp\Group1.txt");
}
一般來說, SelectedItem
屬性持有的object是Items
集合中當前選中的元素,所以當SelectedIndex
>= 0時,下面的條件為真:
selector.SelectedItem == selector.Items[selector.SelectedIndex]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.