将值从WPF TextBox添加到List

时间:2015-05-09 03:04:18

标签: c# wpf

我的目标是将新创建的学生参数从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>();
    }
}

2 个答案:

答案 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。