le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Un comando composto può attivare più comandi registrati con esso ed eseguire più comandi contemporaneamente. È possibile soddisfare i requisiti aziendali, ad esempio il salvataggio di tutti.
1. Creare l'interfaccia ICompositeCommands e la classe di implementazione CompositeCommands
Avvolgi l'oggetto CompositeCommand fornito in Prism nell'interfaccia ICompositeCommands e nella classe di implementazione ApplicationCommands
public interface IApplicationCommands
{
CompositeCommand SaveCommand { get; }
}
public class ApplicationCommands : IApplicationCommands
{
private CompositeCommand _saveCommand = new CompositeCommand();
public CompositeCommand SaveCommand
{
get { return _saveCommand; }
}
}
2. Registra i comandi composti in IOC
Esegui la registrazione IOC nel codice in background App.xaml
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IApplicationCommands, ApplicationCommands>();
}
3. Definire i comandi composti in ViewModel
Definire un comando composito in ViewModel e associare il comando al livello Vista
Visualizza modello:
private IApplicationCommands _applicationCommands;
public IApplicationCommands ApplicationCommands
{
get { return _applicationCommands; }
set { SetProperty(ref _applicationCommands, value); }
}
public MainWindowViewModel(IApplicationCommands applicationCommands)
{
ApplicationCommands = applicationCommands;
}
Visualizzazione:
<Button Content="Save" Margin="10" Command="{Binding ApplicationCommands.SaveCommand}"/>
4. Registra il comando composto con Comandi in più altri posti.
public TabViewModel(IApplicationCommands applicationCommands)
{
_applicationCommands = applicationCommands;
UpdateCommand = new DelegateCommand(Update).ObservesCanExecute(() => CanUpdate);
_applicationCommands.SaveCommand.RegisterCommand(UpdateCommand);
}
private void Update()
{
UpdateText = $"Updated: {DateTime.Now}";
}
In questo modo, quando viene attivato il comando composto ApplicationCommands.SaveCommand, verranno attivati tutti i comandi registrati.