C# WPF如何向ComboBox添加对象列表?重复显示最新名称问题排查
问题分析与解决方案
嘿,这问题的根源其实就在你代码里的一个小疏忽!你看这段循环代码:
private void TabSupp_Famille(object sender, RoutedEventArgs e) { CBFamilleSuppr.Items.Clear(); foreach (Famille unPrenomMere in LesFamilles) { CBFamilleSuppr.Items.Add(uneFamille.GetNomMere()+" "+ uneFamille.GetPrenomMere()); } }
你在foreach循环里定义的迭代变量是unPrenomMere,但调用GetNomMere()和GetPrenomMere()的时候,用的却是uneFamille这个变量!这就导致循环跑了7次,但每次都是把uneFamille指向的对象名称添加到ComboBox里——如果uneFamille最后刚好是LesFamilles里的最后一个对象,那ComboBox里自然全是它的名字啦。
只需要把调用方法的变量换成循环里的迭代变量unPrenomMere就行,修正后的代码如下:
private void TabSupp_Famille(object sender, RoutedEventArgs e) { CBFamilleSuppr.Items.Clear(); foreach (Famille unPrenomMere in LesFamilles) { // 把uneFamille换成unPrenomMere,使用当前循环迭代的对象 CBFamilleSuppr.Items.Add(unPrenomMere.GetNomMere() + " " + unPrenomMere.GetPrenomMere()); } }
这样循环的时候,每次都会取当前迭代到的Famille对象,ComboBox里就能正确显示每个对象的名称啦。
内容的提问来源于stack exchange,提问作者Aurélien
相关产品推荐
相关产品推荐

