При редактировании добавляется новая строка. Как исправить?

Рейтинг: 0Ответов: 0Опубликовано: 27.04.2023

Проблема в том, что данные редактируются, но, при этом добавляется новая строка с теми же параметрами, которые были в редактируемой строке. Как это подправить? введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения

С#

private Teacher teacher = new Teacher();
        public PageAdmin_Menu_Teacher_Edit(Teacher selectedTeacher)
        {
            InitializeComponent();
            DataContext = teacher;
            if (selectedTeacher != null)
                teacher = selectedTeacher;
            DataContext = teacher;
            

            Fam.Text = selectedTeacher.SurnameTeacher.ToString();
            Nam.Text = selectedTeacher.FirstnameTeacher.ToString();
            Otc.Text = selectedTeacher.PatronymicTeacher.ToString();
            Pass.Text = selectedTeacher.PasswordTeacher.ToString();
            Log.Text = selectedTeacher.LoginTeacher.ToString();
        }

        private void SaveTeacher_Click(object sender, RoutedEventArgs e)
        {
            try
            {   
                Teacher _teacher = new Teacher()
                {
                    SurnameTeacher = Fam.Text,
                    FirstnameTeacher = Nam.Text,
                    PatronymicTeacher = Otc.Text,
                    PasswordTeacher = Pass.Text,
                    LoginTeacher = Log.Text

                };
                ХолчукУПТеорияВероятностейEntities2.GetContext().Teacher.Add(_teacher);
                ХолчукУПТеорияВероятностейEntities2.GetContext().SaveChanges();
                MessageBox.Show("Данные успешно изменены");
                NavigationService.Navigate(new PageAdmin_Menu_Teacher());
            }
            catch (DbEntityValidationException Ex)
            {
                foreach (DbEntityValidationResult validationError in Ex.EntityValidationErrors)
                {
                    MessageBox.Show("Object: " + validationError.Entry.Entity.ToString());
                    MessageBox.Show("");

                    foreach (DbValidationError err in validationError.ValidationErrors)
                    {
                        MessageBox.Show(err.ErrorMessage + "");
                    }
                }
            }
        }

XAML, если вдруг надо

<Grid>
        <Border VerticalAlignment="Center">
            <StackPanel HorizontalAlignment="Center">
                <Label HorizontalAlignment="Center" >Переименуйте фамилию преподавателя</Label>
                <TextBox x:Name="Fam" Text="{Binding SurnameTeacher}"  ></TextBox>
                <Label HorizontalAlignment="Center" >Переименуйте имя преподавателя</Label>
                <TextBox x:Name="Nam" Text="{Binding FirstnameTeacher}" ></TextBox>
                <Label HorizontalAlignment="Center" >Переименуйте отчество преподавателя</Label>
                <TextBox x:Name="Otc" Text="{Binding PatronymicTeacher}"  ></TextBox>
                <Label HorizontalAlignment="Center" >Поменяйте пароль авторизации</Label>
                <TextBox x:Name="Pass" Text="{Binding PasswordTeacher}" ></TextBox>
                <Label HorizontalAlignment="Center" >Поменяйте логин авторизации</Label>
                <TextBox x:Name="Log" Text="{Binding LoginTeacher}" ></TextBox>
                <WrapPanel>
                    <Button Margin="5" Width="250" x:Name="SaveTeacher" Click="SaveTeacher_Click" >Сохранить изменения</Button>
                    <Button Margin="5" Width="250" x:Name="Back" Click="Back_Click" >Отменить</Button>
                </WrapPanel>
            </StackPanel>
        </Border>
    </Grid>

Ответы

Ответов пока нет.