-1
錯誤的項目選擇在組合框中選擇(C#,WPF)錯誤的項目在組合框(C#,WPF)
我有一個comboBox
和textBox
。當我在組合框中選擇一個項目(html文件)時,我想將這些內容添加到我的文本框中。以下是我到目前爲止有:
public void SetDataPoolToComboBox()
{
comboBox_DataPool.Items.Clear();
comboBox_DataPool.Items.Add("Please choose a file...");
comboBox_DataPool.SelectedIndex = 0;
if (true == CheckPath())
{
foreach (string s in Directory.GetFiles(pathTexts, "*.html"))
{
comboBox_DataPool.Items.Add(Path.GetFileNameWithoutExtension(s));
}
}
}
public void comboBox_DataPool_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
SetContentToTextBox();
}
public void SetContentToTextBox()
{
if (true == CheckPath())
{
FileInfo[] fileInfo = directoryInfo.GetFiles("*.html");
if (fileInfo.Length > 0)
{
if (comboBox_DataPool.Text == "Please choose a file..." || comboBox_DataPool.Text == "")
{
textBox_Text.Text = string.Empty;
}
else
{
StreamReader sr = new StreamReader(fileInfo[comboBox_DataPool.SelectedIndex].FullName, Encoding.UTF8);
textBox_Text.Text = sr.ReadToEnd();
sr.Close();
}
}
}
}
問題:當我選擇第二項,顯示第三項的內容。每次都會發生同樣的情況 - 我選擇哪個項目並不重要。當我選擇最後一個項目時,應用程序被踢出:「錯誤:索引超出範圍!」
看來工作。不幸的是,當我點擊第一項「請選擇一個文件...」時,它會拋出相同的異常。 – gpuk360
第0個索引不應該超過你的其他語句。它應該先處理,如果條件。不知道爲什麼不是,而是檢查字符串,你可以像這樣檢查SelectedIndex - 'if(comboBox_DataPool.SelectedIndex == 0) {textBox_Text.Text = string.Empty; }'。 –
完美!大拇指。 – gpuk360