none
Создание статического экземпляра ObservableCollection и использование его из нескольких мест в программе. RRS feed

  • Вопрос

  • Ave всем.

    У меня в приложении, модель представления состоит из цепочки наследуемых классов. Класс "А" - родительский, а классы "Б" и "В" - производные от него (они одноуровневые). При работе приложения, создаётся один экземпляр класса "Б" и могут быть созданы от одного до нескольких экземпляров класса "В". Экземпляры класса "В" создаются из класса "Б" (там есть команда для этого). В каждом классе "В" должна быть OdservableCollectiion, содержимое которой отображается в представлении через привязку. А вот наполняться данными эти ObservableCollectionS должны в классе "Б". Можно ли мне, чтобы не передавать, в качестве параметра, конструктору класса "В" ObservableCollection из 50 - 60 элементов, поступить следующим образом, а именно:

    1) Создать статический protected экземпляр ObservableCollection в классе "А",

    2) Заполнить его данными в классе "Б",

    3) И при создании очередного экземпляра класса "В", в этом экземпляре уже будет содержаться такая коллекция с данными.

    Но обмолвлюсь сразу - нужно что бы в каждом представлении, привязанном к соответствующему экземпляру класса "В", из коллекции можно было (с помощью Combobox) выбрать данные не обязательно те, которые были из выбраны в другом или в других представлениях, привязанных к другим экземплярам класса "В". Т.е., что бы в каждом представлении, привязанном к опренделённому экземпляре "В" можно было делать разную выборку из коллекции. В представлении, отображающем данные из соответствующего класса "В", к этой статической ObservableCollection будет привязан Combobox.

    И не будет ли такая коллекция bottleneck'ом при работе приложения?



    • Изменено TownSparrow 12 сентября 2013 г. 10:55
    12 сентября 2013 г. 9:58

Ответы

  • Добрый день.

    Если позволите, то что то у вас в архитектуре запутано.

    Я бы передавал в конструктор каждого экземпляра класса В, нужные ему данные.

    Если биндинг в ComboBox будет через конвертор с параметром, то фильтрацию можно будет сделать. Работать, если у вас ComboBox-ов не сотни, будет достаточно быстро.  Но, я бы так не делал.

    • Помечено в качестве ответа TownSparrow 12 сентября 2013 г. 16:47
    12 сентября 2013 г. 15:31
    Отвечающий

Все ответы

  • Добрый день.

    Если позволите, то что то у вас в архитектуре запутано.

    Я бы передавал в конструктор каждого экземпляра класса В, нужные ему данные.

    Если биндинг в ComboBox будет через конвертор с параметром, то фильтрацию можно будет сделать. Работать, если у вас ComboBox-ов не сотни, будет достаточно быстро.  Но, я бы так не делал.

    • Помечено в качестве ответа TownSparrow 12 сентября 2013 г. 16:47
    12 сентября 2013 г. 15:31
    Отвечающий
  • Спасибо, Алексей. У меня кстати тоже такое же мнение. Оно у меня было ещё тогда, когда я это делал. Да это я в эту коллекцию сохраняю таблицу индексов RTS_INDEX_REPL.rts_index, принимаемую с биржи, а она всё-таки не справочник - изменяется. Там даже бывает, что записи перетасовываются в своём порядке нахождения в таблице (по крайней мере на тестовом контуре). Сам наблюдал. Но завтра я переделаю так, как вы советуете. Т.е. пусть коллекция будет в каждом экземпляре класса "В" своя. Спасибо большое за ответ.

    12 сентября 2013 г. 16:47