0

我想要做的是使组合框中的特定字符串成为选定索引。组合框的内容是目录中文件的文件名。这是一个可编辑的组合框。所以我做了

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

我如何实现我的目标?谢谢,萨罗杰

4

2 回答 2

1

由于 ComboBox 项目是字符串,您可以简单地将SelectedItem属性设置为所需的字符串:

ComboBoxProfiles.SelectedItem = "Default.xml";

请注意,这会自动将SelectedIndex属性设置为正确的值,SelectedItem并且SelectedIndex始终保持同步。

于 2013-02-16T22:52:42.570 回答
0

ComboBoxItems 是stringtype 。将您的代码更改为:

foreach (string cmbItem in ComboBoxProfiles.Items) 
    {
        index++;
        if (cmbItem == "Default.xml")
        {
            ComboBoxProfiles.SelectedIndex = index;
            break;
        }
    }

并且比循环更好:

ComboBoxProfiles.SelectedIndex = ComboBoxProfiles.Items.IndexOf("Default.xml");
于 2013-02-16T21:55:48.787 回答