none
Добавление экземпляров классов в коллекцию C# RRS feed

  • Вопрос

  • public class Scheme1 : Scheme { public Collection<Element> ElementsList {get;set;} ... public class Element1 : Element { ... } public class Element2 : Element { ... } public class Element3 : Element { ... } public class Element... : Element { ... } } public abstract class Element { ... }

    Программа написана на C# в связке с WPF

    Структура такова, что есть класс Scheme1 (схема) - который может содержать в себе некоторое количество элементов. Возможные элементы, которые он может содержать наследуются от класса Element, и вложены в класс Scheme1 (Element1, Element2, Element3 и т.д).
    Для добавления элемента в коллекцию ElementList используется диалоговое окно с возможностью выбора нужного класса (Element1, Element2, Element3...), экземпляр которого создается и добавляется в коллекцию ElementsList

    Как грамотно реализовать добавление нужных элементов в коллекцию?


    • Изменен тип Nesikk 12 февраля 2012 г. 17:21
    12 февраля 2012 г. 14:39

Ответы

  • Например так:

    В диалоге создания элемента делаете набор табов Element1, Element2, Element3 и т.д (если много, можно комбобокс, это уж на вкус и цвет).

    После выбора пользователем нужного элемента, во ViewModel.NewElement (ViewModel - vm диалога, NewElement - поле типа Element, первоначально null) устанавливаете созданный объект нужного типа (если юзер выбрал Element1, создаете этот элемент и делаете set в поле NewElement). Во вьюшке должен присутствовать ContentPresenter, который будет отображать этот элемент. В ресурсах при этом для каждого элемента должен быть указан DataTemplate.

    И должна быть кнопка Add, по которой новосозданный элемент будет добавляться в коллекцию.

    • Помечено в качестве ответа Abolmasov Dmitry 14 февраля 2012 г. 8:48
    13 февраля 2012 г. 6:59
    Отвечающий