Как забиндить данные в WPF?
Проблема такая, у меня есть класс
internal class Student
{
public string FullName { get; set; }
public string Group { get; set; }
public int Course { get; set; }
public List<Exam> Exams { get; set; }
public Student(string fullname, string group, int course)
{
FullName = fullname;
Group = group;
Course = course;
}
}
internal class Exam
{
public string Name { get; set; }
public string Description { get; set; }
public Exam(string name, string decr)
{
Name = name;
Description = decr;
}
}
И DataGrid, который прибинден к этому коллекции этих классов
<DataGrid Grid.Row="1" x:Name="DGStudents" Margin="10" IsReadOnly="True"
AutoGenerateColumns="False" ItemsSource="{Binding Path=studends}">
<DataGrid.Columns>
<DataGridTextColumn Header="Студент" Width="*" Binding="{Binding Path=FullName}"/>
<DataGridTextColumn Header="Группа" Width="*" Binding="{Binding Path=Group}"/>
<DataGridTextColumn Header="Курс" Width="*" Binding="{Binding Path=Course}"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.25*"/>
<ColumnDefinition Width="0.75*"/>
</Grid.ColumnDefinitions>
<ComboBox Grid.Column="0" ItemsSource="{Binding Exams}"
DisplayMemberPath="Name">
</ComboBox>
<TextBlock Grid.Column="1"/>
</Grid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
Коллекция:
public ObservableCollection<Student> studends { get; set; }
= new ObservableCollection<Student>()
{
new Student("Ivan Petrov", "21-KB-PR2", 2)
{Exams = new List<Exam>()
{
new Exam("Math", "Perfect"),
new Exam("OOP", "Good"),
new Exam("TRPO", "Bad")
}
}
};
Вопрос таков я хочу чтобы после выбора предмета в ComboBox TextBlock менял свое значение на значение Description, который находится в классе Exam, а тот в классе Student.
Пытался сделать это все через SelectedItem:
private static Exam _selected_item;
public static Exam SelectedItem
{
get => _selected_item;
set => OnPropertyChanged();
}
Но у меня биндинг просто не видит это свойство.