Добавление в связанный ListView - PullRequest
       364

Добавление в связанный ListView

1 голос
/ 11 октября 2011

Я пытаюсь добавить человека в список отдыхающих (людей).Я привязал ListView(GridView) к базе данных, и она отображает все имена, возрасты и оценки.Но сейчас я пытаюсь добавить нового человека и добавить (отобразить) его в ListView вместе со всеми остальными.Любая помощь очень ценится.

Вот что у меня есть: ObservableCollection

class BindingCamper
{  // This class assist in binding campers from listview to the textboxes on the camperspage
    public ObservableCollection<Camper> Campers { get; private set; }

    public BindingCamper()
    {
        Campers = new ObservableCollection<Camper>();

    } 
}

Здесь я добавляю список имен в просмотр списка:

       MainWindow _parentForm;

    public ObservableCollection<Camper> Campers { get; private set; }

    public CampersPage(MainWindow parent)
    {
        _parentForm = parent;
        InitializeComponent();


        var bindMe = new BindingCamper();

        for (int i = 0; i < _parentForm.allCampers.Count; i++)
            bindMe.Campers.Add(new Camper { Name = "" + _parentForm.allCampers[i].getName(), Ages = _parentForm.allCampers[i].getAge(), SchoolGrade = _parentForm.allCampers[i].getGrade() });
        DataContext = bindMe;

Здесь я добавляюновый турист (человек), и я пытаюсь добавить его / ее в список просмотра:

            String nameMe;
        nameMe = txtNewFirstName.Text ;
        int age;
        int grade;
        if (nameMe != "" && IsNumber(txtNewGrade.Text) && IsNumber(txtNewAge.Text))
        { 
            age = Convert.ToInt16(txtNewAge.Text);
            grade = Convert.ToInt16(txtNewGrade.Text);
            // Create New Camper


            Camper person = new Camper(age, grade, nameMe);

            _parentForm.allCampers.Add(person);
            //_parentForm.camperPage.listViewCampers.Items.Refresh();
            var bind = new BindingCamper();
          //  bind.Campers.Add(new Camper { Name = person.getName(), Ages = person.getAge(), SchoolGrade = person.getGrade() });
          //  _parentForm.camperPage.Campers.Add(new Camper { Name =  person.getName(), Ages = person.getAge(), SchoolGrade = person.getGrade() });

            Close();

1 Ответ

0 голосов
/ 11 октября 2011

Вы не должны обновлять базу данных, чтобы добавить туриста:

Camper person = new Camper(age, grade, nameMe);
if TryAddToDatabase(person)
{
    bindMe.Campers.Add(person);
}

Если ListView привязан к bindMe.Campers, он автоматически обновится и покажет новый элемент. Также я бы порекомендовал вам полностью прочитать WPFTutorial , чтобы в будущем вам не пришлось выполнять дополнительную работу.

...