« Prism 8 » : différence entre les versions

De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 35 : Ligne 35 :
| scoped service || no implementation because unlike a web application, desktop applications are dealing with a single user and not scoped user requests.
| scoped service || no implementation because unlike a web application, desktop applications are dealing with a single user and not scoped user requests.
|}
|}
= [https://prismlibrary.com/docs/commanding.html Commands] =
<filebox fn='MyViewModel.cs'>
public DelegateCommand DoCommand { get; }
public MyViewModel()
{
    DoCommand = new DelegateCommand(Do, CanDo);
}
private void Do()
{ }
private bool CanDo() => true;
</filebox>
<filebox fn='MyView.xaml'>
<Button Command="{Binding DoCommand}"
        Content="Do" />
</filebox>

Version du 10 avril 2021 à 20:24

Links

Description

Fully open source version of Prism including MVVM, dependency injection, commands, EventAggregator, and others.
Prism 8 supports WPF, Xamarin Forms and UNO, but not Silverlight, Windows 8/8.1/WP8.1 or UWP.

Getting Started

Dependency Injection

App.xaml.cs
public partial class App
{
    protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        // register a singleton service
        containerRegistry.RegisterSingleton<IMyService, MyService>();
        // registera transient service
        containerRegistry.Register<IMyService, MyService>();
    }
singleton service for a service which is used throughout the application and that retains its state.
transient service create a new instance each time.
scoped service no implementation because unlike a web application, desktop applications are dealing with a single user and not scoped user requests.

Commands

MyViewModel.cs
public DelegateCommand DoCommand { get; }

public MyViewModel()
{
    DoCommand = new DelegateCommand(Do, CanDo);
}

private void Do()
{ }

private bool CanDo() => true;
MyView.xaml
<Button Command="{Binding DoCommand}"
        Content="Do" />