Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定到WPF数据网格时,此视图不允许Wrapped ObservableCollection抛出“EditItem”_C#_Wpf_Wpfdatagrid_Observablecollection - Fatal编程技术网

C# 绑定到WPF数据网格时,此视图不允许Wrapped ObservableCollection抛出“EditItem”

C# 绑定到WPF数据网格时,此视图不允许Wrapped ObservableCollection抛出“EditItem”,c#,wpf,wpfdatagrid,observablecollection,C#,Wpf,Wpfdatagrid,Observablecollection,我创建了一个包装器来扩展ObservableCollection 在我尝试将列表中的项目绑定到数据网格之前,我一直认为它可以正常工作 <DataGrid ItemsSource="{Binding /Orders}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="Order Id" Binding="{Binding OrderId}" />

我创建了一个包装器来扩展ObservableCollection

在我尝试将列表中的项目绑定到数据网格之前,我一直认为它可以正常工作

<DataGrid ItemsSource="{Binding /Orders}" AutoGenerateColumns="False">
    <DataGrid.Columns>
    <DataGridTextColumn Header="Order Id" Binding="{Binding OrderId}" />
        <DataGridTextColumn Header="Date Time" Width="125" Binding="{Binding DateTime}" />
        <DataGridTextColumn Header="Notes" Width="125" Binding="{Binding Notes}" />
        <DataGridTextColumn Header="Cost" Width="75" Binding="{Binding Cost}" />
    </DataGrid.Columns>
</DataGrid>
这些项显示在网格中,但此视图不允许双击单元格抛出“EditItem”

当我用常规的ObservableCollection替换ModelCollection时,不会引发异常


我的目的是允许对单元格进行编辑。我的包装上缺少接口了吗?

我可以通过显式实现IList来解决这个问题


我可以通过显式实现IList来解决这个问题

<DataGrid ItemsSource="{Binding /Orders}" AutoGenerateColumns="False">
    <DataGrid.Columns>
    <DataGridTextColumn Header="Order Id" Binding="{Binding OrderId}" />
        <DataGridTextColumn Header="Date Time" Width="125" Binding="{Binding DateTime}" />
        <DataGridTextColumn Header="Notes" Width="125" Binding="{Binding Notes}" />
        <DataGridTextColumn Header="Cost" Width="75" Binding="{Binding Cost}" />
    </DataGrid.Columns>
</DataGrid>
[Serializable]
public abstract class ModelCollection<TModel> : ModelCollectionBase,
    IList<TModel>, IList, INotifyCollectionChanged, INotifyPropertyChanged
    where TModel : ModelBase<TModel>
{
    private ObservableCollection<TModel> wrappedCollection = new ObservableCollection<TModel>();

    // wrapper implementation goes here
}