После выбора значения из моего поля со списком, значения должны быть добавлены в список из базы данных. В моем случае я выбираю школьный класс из поля со списком. Затем в списке должно отобразиться список учеников этого класса (выбранный класс из поля со списком). Школьные классы также из базы данных. Поле со списком заполнено школьными классами, и я заполняю его, используя метод, который я вызываю в конструкторе. Студенты должны отображаться после того, как я нажму на кнопку. Этот щелчок делается в команде, которая связана со свойством команды кнопки. Лог c находится в классе ViewModel, а не в Window.xaml.cs, так как здесь я использую MVVM. Список не заполнен данными из базы данных, вот в чем проблема. Ничего не отображается
Вот мой код из ViewModel:
Свойство команды:
public ICommand SearchCommand
{
get
{
if (searchCommand == null)
{
searchCommand = new RelayCommand(() => searchStudents());
}
return searchCommand;
}
}
Метод:
public void searchStudents()
{
try
{
mySqlConnection.Open();
string query = "SELECT * FROM `studentmanagement-db`.tbl_student WHERE FK_Klasse= @FK_Klasse;";
MySqlCommand command = new MySqlCommand(query, mySqlConnection);
command.Parameters.AddWithValue("@FK_Klasse", KlasseProp.KlassenIDFK);
command.ExecuteNonQuery();
MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(command);
using (sqlDataAdapter)
{
DataTable studentTable = new DataTable();
sqlDataAdapter.Fill(studentTable);
var result = studentTable;
SchuelerProp.Vorname = "Vorname";
SchuelerProp.ItemSource = studentTable.DefaultView;
SchuelerProp.SchuelerID = "tbl_student_id";
}
}
catch (Exception e)
{
MessageBox.Show(e.StackTrace);
}
finally
{
mySqlConnection.Close();
}
Вот Привязки от xaml:
<ComboBox x:Name="Combo_Klassen" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="20,10,10,10" Width="100" Height="25"
ItemsSource="{Binding Path=KlasseProp.ItemSource, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
DisplayMemberPath="{Binding Path=KlasseProp.KlassenNamen}"
SelectedValue="{Binding KlasseProp.KlassenIDFK}"
SelectedValuePath="{Binding Path=KlasseProp.KlassenID}"
>
</ComboBox>
<Button x:Name="Button_Search" Content="search" VerticalAlignment="Top" HorizontalAlignment="Right" Width="50" Height="25" Margin="20,10,50,10" VerticalContentAlignment="Center"
Command="{Binding Path=SearchCommand}"/>
<ListBox x:Name="Listbox_Students" Margin="50,100,50,75"
ItemsSource="{Binding Path=SchuelerProp.ItemSource, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"
DisplayMemberPath="{Binding Path=SchuelerProp.Vorname}"
SelectedValuePath="{Binding Path=SchuelerProp.SchuelerID}"
SelectedValue="{Binding Path=SchuelerProp.Schueler_ID}"
>
</ListBox>