Добавление объектов с помощью метода addNew () IEditableCollectionView вполне прилично. Однако я не уверен, насколько хорошо он работает с моим общим кодом.
У меня есть ObservableCollection моего базового класса. В зависимости от того, что пользователь хочет видеть, он может быть заполнен DerivedA или DerivedB (или может включать несколько классов производных типов). Он никогда не имеет более 1 типа. У меня есть следующие вопросы об этом с номером 1, являющимся основным вопросом.
1) Какой тип объекта добавляется при вызове метода addNew (). Я предполагаю базу, но не уверен. Что, если База абстрактна? Могу ли я в любом случае убедиться, что он добавляет определенный тип, или он реализован так, что уже добавляет наиболее подходящий тип?
2) Я спрашиваю о проблемах с ObservableCollection при использовании производных классов?
3) Все производные классы реализуют IEditableObject индивидуально, а Base - нет. Моя глупость как вина, потому что я думал, что когда вы реализуете, вам придется определить методы. Я могу просто определить их как абстрактные, а затем переопределить их в производных классах, верно? Если я этого не сделаю, у меня возникнут проблемы с IEditableCollection.
UPDATE:
Я успешно исправил пункт 3) Базовый класс реализует iEditableObject, и абстрактные виртуальные методы выбрасываются в его производные классы. Метод addNew не работает, даже если список заполнен производным элементом.
Я видел одно полу решение. .Net Framework 4.0 реализует новый метод под названием AddNewItem, где вы можете определить элемент, который будет добавлен. Должен решить проблему с безпараметрическими конструкторами и базовыми классами. Однако я работаю в 3,5
Что я могу сделать?