【发布时间】:2018-02-07 08:58:30
【问题描述】:
目前,当然,我正在尝试从 Landen 类中检查 LandCode 以从 selectedItem 土地中获取城市,但我解析错误。
public partial class Landen
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Landen()
{
this.Steden = new HashSet<Steden>();
this.Talen = new HashSet<Talen>();
}
public string LandCode { get; set; }
public string Naam { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Steden> Steden { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Talen> Talen { get; set; }
}
public MainWindow()
{
InitializeComponent();
var context = new LandenStedenTalenEntities();
landenListBox.ItemsSource = (from Landen in context.Landen select Landen.Naam).ToList();
}
private void landenListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
using (var entities = new LandenStedenTalenEntities())
{
List<string> steden = new List<string>();
var landcode = ((Landen)landenListBox.SelectedItem).LandCode.ToString();
var gekozenland = entities.Landen.Find(landcode);
foreach(var stad in gekozenland.Steden)
{
steden.Add(stad.Naam);
}
stedenInLandenListBox.ItemsSource = steden.ToList();
}
}
例外:
无法将“System.String”类型的对象转换为“TestEFDieter.Landen”类型。
我想将它们添加到列表中并在第二个列表框中显示它们。 谁能帮我吗?谢谢。
【问题讨论】:
-
你的错误在哪里?
-
var landcode = ((Landen)landenListBox.SelectedItem).LandCode.ToString();附加信息:无法将“System.String”类型的对象转换为“TestEFDieter.Landen”类型。
-
你想用这个
.ToString().ToList();达到什么目的? String 已经是一个“char 数组”,你可以通过调用 indexers 来遍历它。 -
不假思索地找东西叫绝望-_-'
-
SelectedItem显然包含一个字符串,它不能转换为Landen。我们不知道Landen是什么,也不知道您如何通过您在列表框中选择的任何内容来获取该类的实例。
标签: c# wpf casting listbox entity