C# DataTemplate中只显示列表中的最后一项

C# DataTemplate中只显示列表中的最后一项,c#,wpf,C#,Wpf,我有5个内容,我想在应用程序启动时以wrapPanels的形式显示,但不幸的是,它没有按我所希望的那样工作。当我运行应用程序时 public class Company { public String EventName { get; set; } public String Attendees { get; set; } public String Date { get; set; } } } 我希望所有的内容都会显示出来,但只有爬山显示出这个问题的原因是因为您正在用

我有5个内容,我想在应用程序启动时以wrapPanels的形式显示,但不幸的是,它没有按我所希望的那样工作。当我运行应用程序时

public class Company
{
    public String EventName { get; set; }
    public String Attendees { get; set; }
    public String Date { get; set; }
}
}


我希望所有的内容都会显示出来,但只有爬山显示出这个问题的原因是因为您正在用每个新值覆盖名为“com”的变量

com = new Company { EventName = "Code Talks" ,Attendees ="50" , Date = "25/oct./2019" };
com = new Company { EventName = "Tic Tac", Attendees = "70", Date = "55/oct./2019" };
com = new Company { EventName = "Loney Talks", Attendees = "30", Date = "5/oct./2019" };
com = new Company { EventName = "Cofee Talks", Attendees = "50", Date = "25/oct./2019" };
com = new Company { EventName = "Hiking ", Attendees = "40", Date = "75/oct./2019" }; 
这相当于尝试存储几个整数,如下所示:

x=5;
x=4;
x=1;
您需要使用某种数组并将每个项添加到其中。如果您只打算使用这5项,那么固定长度数组就可以了:

Company[] coms = new Company[5];
coms[0] = new Company { EventName = "Code Talks" ,Attendees ="50" , Date = "25/oct./2019" };
coms[1] = new Company { EventName = "Tic Tac", Attendees = "70", Date = "55/oct./2019" };
coms[2] = new Company { EventName = "Loney Talks", Attendees = "30", Date = "5/oct./2019" };
coms[3] = new Company { EventName = "Cofee Talks", Attendees = "50", Date = "25/oct./2019" };
coms[4] = new Company { EventName = "Hiking ", Attendees = "40", Date = "75/oct./2019" }; 

你一次又一次地重新分配com,基本上,第二个“com”将覆盖第一个。请不要向天真到足以认真对待该建议的人建议数组
ObservableCollection
是一个更好的主意。同样,Main()方法中的局部变量也不能使他得到任何结果。他需要公开该类型的属性才能绑定到某个对象,他最好使用某种items控件来显示它。请告诉我一个问题。在上面的代码中,图像中添加了5个内容的单击事件,这会将用户带到一个新窗口。那么我可以为新窗口创建itemscontrol吗?如果这是可能的,我如何将每个新窗口链接到它们各自的内容,为什么在这种情况下,
ObservableCollection
更好?