private void button1_Click(object sender, EventArgs e) { PlayerForm plForm = new PlayerForm(); // добавляем список команд в на форму plForm List<Team> teams = db.Teams.ToList(); plForm.listBox1.DataSource = teams; plForm.listBox1.ValueMember = "Id"; plForm.listBox1.DisplayMember = "Name"; DialogResult result = plForm.ShowDialog(this); if (result == DialogResult.Cancel) return; Player player = new Player(); player.Age = (int)plForm.numericUpDown1.Value; player.Name = plForm.textBox1.Text; teams.Clear(); // очищаем список и заново заполняем его выделенными элементами foreach (var item in plForm.listBox1.SelectedItems) { teams.Add((Team)item); } player.Teams = teams; db.Players.Add(player); db.SaveChanges(); MessageBox.Show("Новый игрок добавлен"); }
private void button2_Click(object sender, EventArgs e) { if (dataGridView1.SelectedRows.Count < 1) return; int index = dataGridView1.SelectedRows[0].Index; int id = 0; bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id); if (converted == false) return; Player player = db.Players.Find(id); PlayerForm plForm = new PlayerForm(); plForm.numericUpDown1.Value = player.Age; plForm.textBox1.Text = player.Name; // получаем список команд List<Team> teams = db.Teams.ToList(); plForm.listBox1.DataSource = teams; plForm.listBox1.ValueMember = "Id"; plForm.listBox1.DisplayMember = "Name"; foreach (Team t in player.Teams) plForm.listBox1.SelectedItem = t; DialogResult result = plForm.ShowDialog(this); if (result == DialogResult.Cancel) return; player.Age = (int)plForm.numericUpDown1.Value; player.Name = plForm.textBox1.Text; // проверяем наличие команд у игрока foreach (var team in teams) { if (plForm.listBox1.SelectedItems.Contains(team)) { if (!player.Teams.Contains(team)) player.Teams.Add(team); } else { if (player.Teams.Contains(team)) player.Teams.Remove(team); } } db.Entry(player).State = EntityState.Modified; db.SaveChanges(); MessageBox.Show("Информация обновлена"); }