Что делать, если вместо текста в ComboBox WPF отображаются цифры?
Пытался понять, почему не работает добавление данных, решил сделать редактирование. При входе на страницу с выведенными данными из 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());
}
}
Источник: Stack Overflow на русском