我的问题是:我有一个像这样的学生班:
private int _id
private string _name;
private int _age;
private ICollection<Grade> _grades;
我的成绩课是这样的:
private int _id
private string _gradeval;
private Student _student;
我有这样的StudentVM文件,我没有等级的VM:
private string _nameui;
private int _ageui;
我有以下xaml文件:
<Window x:Class="CodeFirstMVVM.App.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:CodeFirstMVVM.App.ViewModels"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
mc:Ignorable="d"
DataContext="{Binding Source={StaticResource Locator}, Path=StudentView}"
Title="MainWindow" Height="500" Width="900">
<Grid>
<Canvas>
<TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="51" Width="283" Name="txtName" Text="{Binding NameUI}"/>
<TextBox Height="23" Canvas.Left="131" TextWrapping="Wrap" Canvas.Top="86" Width="283" Name="txtAge" Text="{Binding AgeUI}"/>
<DataGrid x:Name="dg01" ItemsSource="{Binding Entities, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedEntity}" CanUserAddRows="False" Canvas.Left="25" Canvas.Top="201" AutoGenerateColumns="False" IsReadOnly="True" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Name" Width="200" />
<DataGridTextColumn Binding="{Binding Age}" Header="Age" Width="50" />
</DataGrid.Columns>
</DataGrid>
<DataGrid ItemsSource="{Binding ElementName =dg01, Path=SelectedItem.Grades, Mode=TwoWay}" Canvas.Left="622" Canvas.Top="201" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding GradeValue}" Header="Grades"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Canvas>
</Grid>
</Window>
正如您所看到的,有两个数据网格。第一个显示学生信息,第二个显示在第一个数据网格中显示所选学生的成绩。我可以在文本框中轻松查看学生信息,但我无法看到所选学生的成绩。当我添加新成绩时,我可以看到成绩。但当我关闭并打开窗户时,我无法看到之前输入的成绩。但我可以在数据库中看到它们。我认为我在绑定成绩方面做错了什么,但我不知道是什么。我怎样才能解决这个问题?感谢。