2011-01-07 11 views
1

这就是完整的错误消息我得到:WPF:无法从目标保存值回源

System.Windows.Data Error: 8 : Cannot save value from target back to source. BindingExpression:Path=SelectedPupil; DataItem='AdministrationViewModel' (HashCode=52357250); target element is 'DataGrid' (Name=''); target property is 'SelectedItem' (type 'Object') NullReferenceException:'System.NullReferenceException 

始终出现此错误,当我点击/从我选择的学生在pupilListDataGrid选择与schoolclasses列表框。

这开始发生时,我改变了我的信息库加载技术,从预先加载到延迟加载。

我SelectedSchoolclass变化,然后我加载根据学生 我SelectedPupil变化,然后我加载文件根据

PupilListView.xaml:

<DataGrid 
       Grid.Row="1"     
       IsReadOnly="True" 
       HeadersVisibility="Column" 
       SelectedItem="{Binding SelectedPupil}"     
       ItemsSource="{Binding Path=SelectedSchoolclass.PupilListViewModel}" 
       AutoGenerateColumns="False" 
       > 
       <DataGrid.Columns> 
        <DataGridTextColumn Binding="{Binding FirstName}" Width="*" Header="Firstname" /> 
        <DataGridTextColumn Binding="{Binding LastName}" Width="*" Header="Last name" /> 
       </DataGrid.Columns> 
     </DataGrid 

这里的ItemSource是设置为SELECTED学校课程的所有学生。 我不需要IsSynchronizedItem的东西,因为我没有真正的聚合数据,因为新的延迟加载实体只是通过父实体的id。

AdminViewMOdel:

public PupilViewModel SelectedPupil 
     { 
      get { return _selectedPupil; } 
      set 
      { 
       _selectedPupil = value; 
       this.RaisePropertyChanged("SelectedPupil"); 
       GetDocumentsForPupil(); 
      } 
     } 

private void GetDocumentsForPupil() 
     { 
      var documentsOC = new ObservableCollection<Document>(_docRepo.GetDocumentsByPupilId(_selectedPupil.Id)); 
      SelectedPupil.Documents.DocumentList = documentsOC; 
     } 

我想这个问题是这样的:

当我从选定文档或学生跳,并选择不将其绑定到NULL任何学生一个schoolclass因为我的ObservableCollection是懒洋洋地只有当我从数据库中获取数据时创建的方式,否则PupilListViewModel_Collection是NULL。

嗯,我想坚持与延迟加载,并不需要像DataGrid_ItemsSource = SchoolclassList/PupilList我用于预先加载结合层次。

我该如何摆脱这种异常?

回答

0

看起来你应该能够返回一个空的适当类型的列表而不是NULL。但是,您的帖子中没有足够的信息让我们知道这一点。

+0

与返回的空列表的问题(计数= 0),每次我selectd相同schoolclass和学生被添加它们被添加两次,三次,四次,我有我的许多datagrid_pupilList双实体。当然,我可以在SchoolclassViewModel中为学生创建一个我刚刚做的集合,但我仍然得到这个错误...呃那是奇怪的,在我刚刚完成所有这些重复数据之前的几个小时工作...非常奇怪。 – Elisabeth 2011-01-07 21:43:25