logo

[ELMA3] Создание нового модуля в дизайнере

Для создания нового модуля необходимо:

1. Создать сборку или папку внутри сборки со следующей структурой:
NewModule
|- Constants //Содержит константы с именами команд, событий, рабочих пространств и т.д.
|- Controllers //Содержит контроллеры
|- Models //Содержит модели объектов
|- Services //Содержит интерфейсы и реализации сервисов
|- Views //Содержит представления, контролы, диалоги, визарды
|- WorkItems //Содержит рабочие элементы

2. Создать основной рабочий элемент модуля в папке WorkItem

public class NewModuleWI : RibbonChapterWorkItem<Controller, NewModuleView>
{
}

В качестве контроллера может быть либо стандартный класс, либо класс собственного контроллера.

3. Создать представление для модуля.
Это может быть любой контрол WinForms.
Если в представлении необходимо использовать контроллер и/или рабочий элемент, можно унаследоваться от ControlledView<TController> или ControlledDataView<TController>. Второй позволяет передавать данные через свойство DataSourceObject.
Для корректного отображения Дизайнера представления в VisualStudio следует осуществить наследование через класс-заглушку:

/// <summary>
/// Представление
/// </summary>
public partial class NewModuleView : NewModuleView_Generic
{
    // Здесь логика для представления
}/// <summary>
/// Заглушка для представления
/// </summary>
public class NewModuleView_Generic : ControlledDataView<NewModuleController>
{
}



4. Создать в корневой папке класс, унаследованный от SingleWorkItemModule<NewModuleWI>

5. Прописать в конфигурационном файле приложения строчку с регистрацией модуля

<CompositeUI>
  <modules>
    <add type="EleWise.ELMA.NewModuleAsm.NewModule, EleWise.ELMA.NewModuleAsm"/>
  </modules>
</CompositeUI>