C#WPF读取没有System.Windows.Controls的列表框项

时间:2015-08-19 22:23:41

标签: c# wpf

当我尝试将ListBox项目读取到XML文件时,读取名称,但使用System.Windows.Controls始终添加列表框项目。我怎么能得到这个名字?

private void Window_Closed(object sender, EventArgs e)
    {
        List<string> dosyaAdlari = new List<string>();

        for (int i = 0; i < listbox1.Items.Count; i++)
        {
            dosyaAdlari.Add(listbox1.Items[i].ToString());
        }

        using (System.IO.StreamWriter yazici = new System.IO.StreamWriter(dosyaYolu))
        {
            XmlSerializer serilestirici = new XmlSerializer(typeof(List<string>));
            serilestirici.Serialize(yazici, dosyaAdlari);
        }
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {
            List<string> dosyaİsimleri = new List<string>();

            using (StreamReader yazici = new StreamReader(dosyaYolu))
            {
                XmlSerializer deSerilestirici = new XmlSerializer(typeof(List<string>));
                dosyaİsimleri = (List<string>)deSerilestirici.Deserialize(yazici);

            }
            for (int i = 0; i < dosyaİsimleri.Count; i++)
            {
                listbox1.Items.Add(dosyaİsimleri[i]);
            }
        }
            catch
            {
            }
        }
}

1 个答案:

答案 0 :(得分:0)

ListBox.ItemsItemCollection类型,因此当您使用ListBox.Items[0]时,您会获得Item,而ToString()方法会为您提供类型的全名。您需要的是ListBox.ItemsSource[0],它会为您提供该项的价值,它代表绑定到特定string的{​​{1}}或int等对象。