View and View Model separation package for UX quality design solutions.

MVVM pattern is widely used in developing of XAML-based GUI applications. Without using this pattern it is impossible to provide the quality UX design implementations. Quality of UX design directly depends on the techniques or features that used for implementing the MVVM pattern. The most important features are to solve the “clear” separation tasks between View (the XAML code coupled with its code-behind) and ViewModel.

Digital agencies are very often involved in providing the quality UX design solutions for application products. This process is based on separated development by two companies’ one application. Design agency develops View (XAML) part and Technology or Business Company concentrates on developing functional parts: View Model and Model.

Here we have got a task when two different languages XAML and C# contracted together delivered by different companies.

This project provides the transparent and professional package for developing quality UX design solutions. Without using these features or similar it is impossible to say that your XAML UX design has a quality.

Well known Binding markup extension can bind only two properties together. The source property can be located either in Resources or either in code-behind. These standard framework features don’t allow developers to separate View from View Model. The volume of code behind development decrease quality of GUI, increase complicity and cost of maintainability. Change in View can cause the dramatic change of the code behind layer.

For high quality UX implementation with XAML you need separate or by other words bind over the framework XAML with ICommand and RoutedEventHandler which are located in the View Model.

Also other project solutions the can be used for advanced separation between View and ViewModel MVVM-WPF Markup Dependency Injection Binding  Extensions. It has the same features but only with one exception you are to bind with components from the Dependency Inversion container

[ICommand interface can be bind also with using well known RelayCommand or DelegateCommand class, but they are not proposed the elegant solution for notifying change ICommand interface state.]

 

Package implements XAML mark-up extensions:

BindEventHandler

BindEventHandlerResource - XAML mark-up extensions to bind an RouteEventHandler or any  xxxEventHandlers.

BindCommand

BindCommandResource - XAML mark-up extensions to aggregate into a proxy class the ICommand interface members.

CommandHandlerProxy

 

See How to” documentation for extra details

 

Chm document can be downloaded from here : Documetation 1.3.1

 

Source code contains the short demo UI applications that demonstrate how to use package.

Install MVVM-WPF Binding Extensions, run the following command in the Package Manager Console.

Binaries, ver. 1.3.1 release: PM> Install-Package WpfMvvmBindingExtension

 

High efficient Mark-up Binding Extensions

Just set the resource element and method name:

<Button Content="Button Click Method" HorizontalAlignment="Left" Margin="27,19,0,0" VerticalAlignment="Top" Width="120"

      Click="{mark:BindEventHandlerResource ResourceKey=MainWindowViewModel,MethodName=ButtonClickMethod}"/>

 

If you need to cook ICommand action  just set all it’s parts to combine together:

<Button Content="Button Cmd-ExCeCh" HorizontalAlignment="Left" Margin="27,155,0,0" VerticalAlignment="Top" Width="120"

 Command="{mark:BindCommandResource ResourceKey=MainWindowViewModel,ExecuteMethodName=ButtonExecuteMethod,

 CanExecuteMethodName=CanExecuteMethod,EventToInvokeCanExecuteChanged=EventNotifyCanExecuteChanged}"/>

 

 

Development Donations Click Here
Donate

In progress new project : MVVM-WPF Markup Dependency Injection Binding  Extensions

 

Last edited Jul 4, 2013 at 7:59 PM by AlexPaskhin, version 51