在mvvm模式下 主表绑定的数据源能正常显示,而从表绑定的数据源无法显示 只有表头显示
xaml 代码如下
1 <DataGrid Name="DgMain" Grid.Row="2" ItemsSource="{Binding QueryMainList}"> 2 <DataGrid.Columns> 3 <DataGridTextColumn Header="姓名" Binding="{Binding UserName}"/> 4 </DataGrid.Columns> 5 <DataGrid.RowDetailsTemplate> 6 <DataTemplate> 7 <DataGrid Name="DgSub" ItemsSource="{Binding QuerySubList}"> 8 <DataGrid.Columns> 9 <DataGridTextColumn Header="科目" Binding="{Binding subject}"/> 10 <DataGridTextColumn Header="成绩" Binding="{Binding Score}"/> 11 </DataGrid.Columns> 12 </DataGrid> 13 </DataTemplate> 14 </DataGrid.RowDetailsTemplate> 15 </DataGrid>
viewModel 里面
1 private ObservableCollection<Student> _queryMainlList; 2 public ObservableCollection<Student> QueryMainList 3 { 4 get { return _queryMainlList; } 5 set 6 { 7 _queryMainlList = value; 8 RaisePropertyChanged("QueryMainList"); 9 } 10 } 11 12 private ObservableCollection<Score> _querySubList; 13 14 public ObservableCollection<Score> QuerySubList 15 { 16 get { return _querySubList; } 17 set 18 { 19 _querySubList = value; 20 RaisePropertyChanged("QuerySubList"); 21 } 22 }
实际上我的子表QuerySubList里面是有数据的,求大神解答下!!!!
这个肯定的啦,你的DgSub这个DataGrid不在VisualTree上面,不能获取到DataContext的值,你可以在DgSub这个DataGrid里面写一个Loaded事件,看看ItemsSource有没有绑定到值,实现的方式有很多种,你可以为其指定一个RelativeSource,或者通过指定Source的方式去获取到DataContext