Я создал оболочку для расширения ObservableCollection<T>
[Serializable]
public abstract class ModelCollection<TModel> : ModelCollectionBase,
IList<TModel>, INotifyCollectionChanged, INotifyPropertyChanged
where TModel : ModelBase<TModel>
{
private ObservableCollection<TModel> wrappedCollection = new ObservableCollection<TModel>();
// wrapper implementation goes here
}
Я думал, что все работает нормально, пока не попытался привязать элементы из списка к DataGrid.
<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' is not allowed for this view.
Исключение не выдается, когда я заменяю ModelCollection<TModel>
обычным ObservableCollection<T>
.
Мое намерение - разрешить редактирование ячеек. Мне не хватает интерфейса в моей оболочке?