minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Um comando composto pode acionar vários comandos registrados nele e pode executar vários comandos ao mesmo tempo. Requisitos de negócios, como salvar tudo, podem ser alcançados.
1. Crie a interface ICompositeCommands e a classe de implementação CompositeCommands
Envolva o objeto CompositeCommand fornecido no Prism na interface ICompositeCommands e na classe de implementação ApplicationCommands
public interface IApplicationCommands
{
CompositeCommand SaveCommand { get; }
}
public class ApplicationCommands : IApplicationCommands
{
private CompositeCommand _saveCommand = new CompositeCommand();
public CompositeCommand SaveCommand
{
get { return _saveCommand; }
}
}
2. Registre comandos compostos no IOC
Execute o registro do IOC no código de fundo App.xaml
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IApplicationCommands, ApplicationCommands>();
}
3. Defina comandos compostos em ViewModel
Defina um comando composto no ViewModel e vincule o comando à camada View
Modelo de exibição:
private IApplicationCommands _applicationCommands;
public IApplicationCommands ApplicationCommands
{
get { return _applicationCommands; }
set { SetProperty(ref _applicationCommands, value); }
}
public MainWindowViewModel(IApplicationCommands applicationCommands)
{
ApplicationCommands = applicationCommands;
}
Visualizar:
<Button Content="Save" Margin="10" Command="{Binding ApplicationCommands.SaveCommand}"/>
4. Registre o comando composto com Comandos em vários outros locais.
public TabViewModel(IApplicationCommands applicationCommands)
{
_applicationCommands = applicationCommands;
UpdateCommand = new DelegateCommand(Update).ObservesCanExecute(() => CanUpdate);
_applicationCommands.SaveCommand.RegisterCommand(UpdateCommand);
}
private void Update()
{
UpdateText = $"Updated: {DateTime.Now}";
}
Desta forma, quando o comando composto ApplicationCommands.SaveCommand for acionado, todos os comandos cadastrados serão acionados.