首页 新闻 会员 周边 捐助

WPF MVVM模式下的 DataGrid 主从表嵌套 RowDetailsTemplate 。。。。。求大神

0
[已解决问题] 解决于 2018-04-21 09:39

在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里面是有数据的,求大神解答下!!!!

senler的主页 senler | 菜鸟二级 | 园豆:202
提问于:2018-04-18 21:15
< >
分享
最佳答案
0

这个肯定的啦,你的DgSub这个DataGrid不在VisualTree上面,不能获取到DataContext的值,你可以在DgSub这个DataGrid里面写一个Loaded事件,看看ItemsSource有没有绑定到值,实现的方式有很多种,你可以为其指定一个RelativeSource,或者通过指定Source的方式去获取到DataContext

奖励园豆:5
Hello——寻梦者! | 菜鸟二级 |园豆:407 | 2018-04-19 16:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册