У меня есть простая архитектура MVVM, в которой я использую модель представления для привязки команд к представлению xaml.Мои команды довольно общие, и я буду связывать их с парой представлений, поэтому я поместил их в их собственные классы, реализующие интерфейс ICommand
.Внутри модели представления у меня есть общедоступные средства доступа, такие как:
private ICommand _myCommand;
public ICommand MyCommand
{
get
{
if (_myCommand == null)
{
_myCommand = new MyCommand(_injectedModel);
}
return _myCommand ;
}
}
Все это работает, и я доволен архитектурой, но ... У меня есть тонны этих функций.Все они примерно делают одно и то же - выставляют команду как открытое свойство, проверяют, существует ли частная команда, и если да, то используют ее, в противном случае создайте новую команду.Это немного "шаблон" на мой вкус.
Я хотел бы хороший способ абстрагировать это.Я мог бы создать метод, который ищет команды на основе идентификатора из какой-то карты команд.Я мог бы просто создать все свои команды в конструкторе моделей представлений (вместо того, чтобы делать это лениво).
Что бы вы посчитали лучшей практикой?Следует ли избегать создания новой команды внутри каждой модели представления и иметь центральный поиск команд?