Livet

The Most Powerful MVVM Infrastructure for WPF 4/4.5

Livet

image

What’s Livet?

Livet is a MVVM (Model-View-ViewModel) infrastructure for WPF4/4.5 running on .NET Framework 4(Client Profile) or higher. distributed under zlib/libpng license.

Installation

Livet provides project templates, item templates and code snippets for Visual Studio 2010/2012 as well as Livet main binary. You can install all of them via Visual Studio Extension Manager.

image

Or you can install via Nuget.

PM> Install-Package LivetCask

However, Nuget package contains main binary only. Templates and snippets are also key components for the productivity of Livet, so we strongry recommend to use Extension Manager.

If you use Express Edition(VS2010/2012), you can install Livet using msi installer, instead of Extension Manager.

Features

1. Tool Support

Livet greatly enhances Visual Studio and Blend.

Visual Studio 2010/2012 Support

In WPF Projects, it’s very messy procedure to cofigure project settings, as well as to Behaviors, Triggers, and Actions.

Livet make them much easier to provide project templates, and item templates. In addition, Livet also provides useful code snnipets for Commands and Notification Properties. (Snnipet documentations are included in templates.)

Blendable(Blend Support)

Every view-support function is designed with usability on Blend. So you can use Livet functions very naturally on Blend.

2. View Support

Livet has a very simple principle on view support functions; To Make Unbindable bindable. That’s it.

For view support libraries on XAML platform, not limited in WPF or MVVM, can do only two things; “expanding or supplementing control functionality” and “enabling to add more functions for binding”. Since Livet is not a control library but a MVVM infrastructure, it’s very natural focusing the principle “To Make Unbindable Bindable”.

Make Unbindable Properties Bindable

Almost all controls have some properties which can’t bind to viewmodels (i.e, they are not dependency property), and it makes harder to manage view status in viewmodel. Livet solves this problem by providing behavior and action that enable one-way binding to these no-dependency properties (except types in System.Windows namespace) as:

Command-Less ViewModel - Direct Method Binding

Why you use ICommand interface to control viewmodel from view ? If you need to abstract view, ICommand is necessary to show a …

So usually, there is no mean to use ICommand if you care about MVVM appropriately.

Message Triggerable Action

Generic EnumToBooleanConverter

Miscellaneous

3. ViewModel Support

Messenger and CompositeDisposable

DispatcherCollection and ReadOnlyDispatcherCollection

ViewModelHelper.CreateReadOnlyDispatcherCollection<TModel,TViewModel>

PropertyChangedEventListener CollectionChangedEventListener

3. Model Support