2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Yhdistelmäkomento voi laukaista useita siihen rekisteröityjä komentoja ja suorittaa useita komentoja kerralla. Liiketoiminnan vaatimukset, kuten kaiken säästäminen, voidaan saavuttaa.
1. Luo ICompositeCommands-käyttöliittymä ja CompositeCommands-toteutusluokka
Kääri Prismissa annettu CompositeCommand-objekti ICompositeCommands-käyttöliittymään ja ApplicationCommands-toteutusluokkaan
public interface IApplicationCommands
{
CompositeCommand SaveCommand { get; }
}
public class ApplicationCommands : IApplicationCommands
{
private CompositeCommand _saveCommand = new CompositeCommand();
public CompositeCommand SaveCommand
{
get { return _saveCommand; }
}
}
2. Rekisteröi yhdistelmäkomennot IOC:ssa
Suorita IOC-rekisteröinti App.xaml-taustakoodissa
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IApplicationCommands, ApplicationCommands>();
}
3. Määritä yhdistelmäkomennot ViewModelissa
Määritä yhdistelmäkomento ViewModelissa ja sido komento View-tasoon
Näytä malli:
private IApplicationCommands _applicationCommands;
public IApplicationCommands ApplicationCommands
{
get { return _applicationCommands; }
set { SetProperty(ref _applicationCommands, value); }
}
public MainWindowViewModel(IApplicationCommands applicationCommands)
{
ApplicationCommands = applicationCommands;
}
Näytä:
<Button Content="Save" Margin="10" Command="{Binding ApplicationCommands.SaveCommand}"/>
4. Rekisteröi yhdistelmäkomento komentojen kanssa useissa muissa paikoissa.
public TabViewModel(IApplicationCommands applicationCommands)
{
_applicationCommands = applicationCommands;
UpdateCommand = new DelegateCommand(Update).ObservesCanExecute(() => CanUpdate);
_applicationCommands.SaveCommand.RegisterCommand(UpdateCommand);
}
private void Update()
{
UpdateText = $"Updated: {DateTime.Now}";
}
Tällä tavalla, kun yhdistelmäkomento ApplicationCommands.SaveCommand käynnistetään, kaikki rekisteröidyt komennot käynnistyvät.