使用WPF组合框时出现运行时错误
本文关键字:运行时错误 WPF 组合 使用 | 更新日期: 2023-09-27 17:59:46
我想做的是在一个组合框中创建一个特定的字符串作为selectedindex。组合框的内容是目录中文件的文件名。这是一个可编辑的组合框。所以我做了
private void InitComboBoxProfiles()
{
string appDataPath1 = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string configPath1 = appDataPath1 + "/LWRF/ReaderProfiles";
string[] files = Directory.GetFiles(configPath1);
foreach( string fn in files)
{
ComboBoxProfiles.Items.Add(fn);
}
int index = -1;
foreach (ComboBoxItem cmbItem in ComboBoxProfiles.Items) //exception thrown at this line
{
index++;
if (cmbItem.Content.ToString() == "Default.xml")
{
ComboBoxProfiles.SelectedIndex = index;
break;
}
}
}
例外:
无法将System.String类型的对象强制转换为System.Windows.Controls.ComboBoxItem
我如何实现我的目标?谢谢saroj
由于组合框项目是字符串,您可以简单地将SelectedItem属性设置为所需的字符串:
ComboBoxProfiles.SelectedItem = "Default.xml";
请注意,这将自动将SelectedIndex
属性设置为正确的值,因为SelectedItem
和SelectedIndex
将始终保持同步。
ComboBox
项目的类型为string
。将您的代码更改为:
foreach (string cmbItem in ComboBoxProfiles.Items)
{
index++;
if (cmbItem == "Default.xml")
{
ComboBoxProfiles.SelectedIndex = index;
break;
}
}
比循环更好:
ComboBoxProfiles.SelectedIndex = ComboBoxProfiles.Items.IndexOf("Default.xml");