The Most Powerful MVVM Infrastructure for WPF 4/4.5
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.
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.
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.
Livet greatly enhances Visual Studio and Blend.
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.)
Every view-support function is designed with usability on Blend. So you can use Livet functions very naturally on Blend.
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”.
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:
xxxSetStateToSourceAction - sends value from Control xxx to binding source
xxxSetStateToControlBehavior - sends value from binding source to Control xxx
Additionaly, for TextBox and PasswordBox, Livet supports two-way binding for unbindable properties by TextBoxBindingSupportBehavior and PasswordBoxBindingSupportBehavior
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.