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
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.
|
MyViewModel.cs
|
public DelegateCommand DoCommand { get; }
public DelegateCommand DoWithParamCommand<string> { get; }
public MyViewModel()
{
DoCommand = new DelegateCommand(Do, CanDo);
DoWithParamCommand = new DelegateCommand<string>(DoWithParam, CanDoWithParam);
}
private void Do() { }
private bool CanDo() => true;
private void DoWithParam(string parameter) { }
private bool CanDoWithParam(string parameter) => true;
|
MyView.xaml
|
<Button Command="{Binding DoCommand}"
Content="Do" />
<Button Command="{Binding DoWithParamCommand}"
CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}}"
Content="Do" />
|