« 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
- Nuget packages
- Prism.Core
- Prism.Wpf
- Prism.DryIoc
- Prism Template Pack Visual Studio extension
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" /> |