Как сгруппировать ICommands, чтобы, если один выполняется, другие не могли?

Это просто извращение while, чтобы получить семантику goto tidy-up без использования слова goto.

Это плохая форма, потому что, когда вы используете другие петли внутри внешнего while, breaks становятся двусмысленными для читателя. «Предполагается ли это, что он должен выйти?» или это предназначено только для выхода из внутреннего цикла? »

2
задан ed22 19 March 2019 в 08:19
поделиться

1 ответ

В .NET Framework такого класса нет, но вы можете взглянуть на то, как класс CompositeCommand реализован в Prism.

Из документов :

Поддерживается список дочерних команд (экземпляры DelegateCommand). Метод Execute класса CompositeCommand просто вызывает метод Execute для каждой дочерней команды по очереди. Метод CanExecute аналогично вызывает метод CanExecute каждой дочерней команды, но если какая-либо из дочерних команд не может быть выполнена, метод CanExecute вернет false. Другими словами, по умолчанию, CompositeCommand может выполняться только тогда, когда могут быть выполнены все дочерние команды.

Вы связываете дочерние команды, используя метод RegisterCommand класса CompositeCommand:

public DelegateCommand UpdateCommand { get; private set; }

public ViewModel()
{
    UpdateCommand = new DelegateCommand(Update);
    ApplicationCommands.SaveCommand.RegisterCommand(UpdateCommand);
}
0
ответ дан mm8 19 March 2019 в 08:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: