Project Description
This project is an attempt to make a very noninvasive framework to assist in MVVM application design for Silverlight and WPF.

Objective
If you look at most of the MVVM took kits out there you will see that most of them force you to inherit from a base class or an abstract class. This framework is an attempt to make a MVVM toolkit that works off of interfaces and extensions while also making a limited impact to the code base that implements this.

Functional Ability
Version 1.0
1. Extensions will allow a cross thread safe way to invoke the firing of PropertyChanged and/or CanExecuteChanged events.
2. Extensions will allow a Delay firing of PropertyChanged and/or CanExecuteChanged.

Add Version 1.1
3. "ToVisibility" Converter that converts most primitive data types to a Visibility value.
4. "ToOpacity" Converter that converts most primitive data types to a float value from 0 to 1 for Opacity.

Benifit
1. WPF and Silverlight UI threads do not allow any updates by code outside of it's thread. This toolkit will allow you to mark any PropertyChanged and/or CanExecuteChanged event to be thread safe so you do not have to make events prompt the view to add a dispatcher call to update the bindings. In effect it will prevent a "System.UnauthorizedAccessException: Invalid cross-thread access." error when using threading in a very clean way for MVVM.
2. By using this toolkit, you will be able to delay the the PropertyChanged and/or CanExecuteChanged by using the "DelayNotifyEvents" or "DelayPropertyChangedEvents". This will allow a consolidation of PropertyChanged event processing on large model or view model calculations.
3. Two very common types of data converters to use in XAML to eliminate unneeded conversions inside ViewModel designs.

Implementation Example
In the downloads section, the source code has a silverlight testing application. There is a Example.cs file that can be used to see the basic implemention of this TooKit as well as a basic functional silverlight App that can be used to test the ToolKit.

Last edited Nov 26, 2011 at 9:51 PM by EmGooser, version 10