我的目标是将新创建的学生参数从TextBox添加到List集合 据我了解,下面的代码不会这样做。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
btnCreateStudent.Click += btnCreateStudent_Click;
}
private void btnCreateStudent_Click(object sender, RoutedEventArgs e)
{
Student student = new Student();
student.Name = txtFirstName.Text;
student.Surname = txtLastName.Text;
student.City = txtCity.Text;
student.Students.Add(student);
txtFirstName.Text = "";
txtLastName.Text = "";
txtCity.Text = "";
}
class Student
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string surname;
public string Surname
{
get { return surname; }
set { surname = value; }
}
private string city;
public string City
{
get { return city; }
set { city = value; }
}
public List<Student> Students = new List<Student>();
}
}
答案 0 :(得分:2)
您是否已将List<Student> Students
与前端的ListBox绑定。在WPF中使用数据绑定。这样,只要您更新数据,UI就会自动更新。
这是代码。在XAML中:
<DataTemplate x:Key="StudentTemplate">
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
<ListBox Name="listBox" ItemsSource="{Binding}"
ItemTemplate="{StaticResource StudentTemplate}"/>
这是一个关于它的教程:
http://www.wpf-tutorial.com/listview-control/listview-data-binding-item-template/
答案 1 :(得分:0)
您的代码似乎可以将其添加到列表中。当然,如果你想将列表添加到列表框中,你可以通过这样的方式轻松完成:
在XAML中创建一个ListBox标记:
<ListBox Name="studentList"/>
比你的代码隐藏:
studentList.Items.Add(student);
事实上,只要初始化学生对象并填写它们就不需要任何List。