WPF:无法将值从目标保存回源

WPF:无法将值从目标保存回源,wpf,binding,fallbackvalue,Wpf,Binding,Fallbackvalue,这是我收到的完整错误消息: 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 'Selec

这是我收到的完整错误消息:

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中单击/选择我所选的学生并将其放入学校班级的列表框时,总是会发生此错误

当我将我的存储库加载技术从渴望加载改为延迟加载时,这种情况就开始出现了

我选择的学校班级发生变化,然后我加载相应的学生 我选择的瞳孔发生变化,然后我加载相应的文档

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


看起来您应该能够返回适当类型的空列表,而不是空列表。但是,您的帖子没有包含足够的信息,我们无法确定这一点。

返回空列表(count=0)的问题是,每次我选择同一个班级,学生都会被添加,他们会被添加两次、三次、四次,我的datagrid\u pupilList中有许多双实体。当然,我可以在SchoolclassViewModel中为学生创建我刚才所做的集合,但我仍然得到了这个错误。。。嗯,奇怪的是,在我开始复制数据之前工作了几个小时。。。很奇怪。
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;
        }