Что делать, если вместо текста в ComboBox WPF отображаются цифры?

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

Пытался понять, почему не работает добавление данных, решил сделать редактирование. При входе на страницу с выведенными данными из SQL в DataGrid, все нормально один После перехода на следующую страницу для редактирования, все ломается. При нажатии на ComboBox появляется привычный текст, который и был заложен в базу данных, но если нажать на что-то, из выпадающего списка, то текст изменяется в набор цифр. При выходе из редактирования, без сохранений, такой поломанный список и остается. При выходе из приложения и последующего запуска, все вновь нормально. Как это исправить? два три четыре

Так же прикрепляю код

XAML в окне меню:

         <DataGrid.Columns>
             <DataGridTextColumn Width="*" Header="Фамилия" Binding="{Binding Surname}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Имя" Binding="{Binding Firstname}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Отчество" Binding="{Binding Patronymic}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Специальность" Binding="{Binding Speciality.TitleSpeciality}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Группа" Binding="{Binding GroupStudent.TitleGroupStudent}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Логин" Binding="{Binding Authorizationn.AuthorizationnLogin}"></DataGridTextColumn>
             <DataGridTextColumn Width="*" Header="Пароль" Binding="{Binding Authorizationn.AuthorizationnPassword}"></DataGridTextColumn>
         </DataGrid.Columns>
     </DataGrid> 

C# в окне меню:

public PageAdmin_Menu_Students()
        {
            InitializeComponent();
            GD.ItemsSource = ХолчукУПТеорияВероятностейEntities.GetContext().Students.ToList();
        }

XAML в окне редактирования:

<TextBlock Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Фамилия</TextBlock>
        <TextBox Text="{Binding Surname}" Grid.Row="0" Grid.Column="1" ></TextBox>

        <TextBlock Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Имя</TextBlock>
        <TextBox Text="{Binding Firstname}" Grid.Row="1" Grid.Column="1"></TextBox>

        <TextBlock Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Отчество</TextBlock>
        <TextBox Text="{Binding Patronymic}" Grid.Row="2" Grid.Column="1"></TextBox>

        <TextBlock Grid.Row="3" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Гендер</TextBlock>
        <ComboBox SelectedIndex="{Binding Gender.TitleGender}" Grid.Row="3" Grid.Column="1" x:Name="ComboTitleGender" DisplayMemberPath="TitleGender"></ComboBox>

        <TextBlock Grid.Row="4" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Специальность</TextBlock>
        <ComboBox SelectedIndex="{Binding Speciality.TitleSpeciality}" Grid.Row="4" Grid.Column="1" x:Name="ComboTitleSpeciality" DisplayMemberPath="TitleSpeciality"></ComboBox>

        <TextBlock Grid.Row="5" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Группа</TextBlock>
        <ComboBox SelectedIndex="{Binding GroupStudent.TitleGroupStudent}" Grid.Row="5" Grid.Column="1" x:Name="ComboGroupStudent" DisplayMemberPath="TitleGroupStudent"></ComboBox>

        <TextBlock Grid.Row="6" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Логин</TextBlock>
        <TextBox Text="{Binding Authorizationn.AuthorizationnLogin}" Grid.Row="6" Grid.Column="1"></TextBox>

        <TextBlock Grid.Row="7" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" >Пароль</TextBlock>
        <TextBox Text="{Binding Authorizationn.AuthorizationnPassword}" Grid.Row="7" Grid.Column="1"></TextBox>

C# в окне редактирования:

private Students _currentStudents = new Students();
        public PageAdmin_Menu_Students_Edit(Students selectedStudents)
        {
            InitializeComponent();
            ComboGroupStudent.ItemsSource = ХолчукУПТеорияВероятностейEntities.GetContext().GroupStudent.ToList();
            ComboTitleSpeciality.ItemsSource = ХолчукУПТеорияВероятностейEntities.GetContext().Speciality.ToList();
            ComboTitleGender.ItemsSource = ХолчукУПТеорияВероятностейEntities.GetContext().Gender.ToList();
            DataContext = _currentStudents;
            if (selectedStudents != null)
                _currentStudents = selectedStudents;
            DataContext = _currentStudents;
        }

        private void Edit_Students_Click(object sender, RoutedEventArgs e)
        {
            ХолчукУПТеорияВероятностейEntities.GetContext().Students.Add(_currentStudents);
            try
            {
                ХолчукУПТеорияВероятностейEntities.GetContext().SaveChanges();
                MessageBox.Show("Информация была изменена!");
                NavigationService.Navigate(new PageAdmin_Menu_Students());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        }

И как информация выглядит в самом SQL: пять Модели данных: шесть семь

Ответы

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