<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>Cinch Wiki &amp; Documentation Rss Feed</title><link>http://cinch.codeplex.com/Wiki/View.aspx?title=Home</link><description>Cinch Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://cinch.codeplex.com/wikipage?version=26</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;What Is Cinch?&lt;/h1&gt;Cinch is a MVVM framework that exposes a number of helper classes to allow the developer to quickly get to grips with creating scalable testable MVVM frameworks as quickly as possible.&lt;br /&gt;&lt;br /&gt;Testing was of paramount importance, and Cinch has had this issue in mind from the very beginning, as such you should find it very easy to unit test your code when using Cinch.&lt;br /&gt;&lt;br /&gt;Cinch has 2 active releases
&lt;ol&gt;&lt;li&gt;Cinch V1 : WPF Only &lt;/li&gt;
&lt;li&gt;Cinch V2 : Which is WPF and Silverlight (4.0 or above) &lt;/li&gt;&lt;/ol&gt;
Here is a list of features that Cinch provides
&lt;ul&gt;&lt;li&gt;View lifecycle events in your ViewModel either by attached behaviours (Cinch V1) or via a deciated UI service (Cinch V2) &lt;/li&gt;
&lt;li&gt;Event To ICommand preversing all relavant data such as Sender/EventArgs etc etc &lt;/li&gt;
&lt;li&gt;IEditableObject support on Models (Cinch V1) and ViewModels (Cinch V1 and Cinch V2). Which allows the store/restore of ViewModel object state on edit / cancel edit &lt;/li&gt;
&lt;li&gt;Flexable delegate based validation rules &lt;/li&gt;
&lt;li&gt;Native IDataErrorInfo support using the Delegate rules approach &lt;/li&gt;
&lt;li&gt;Weak event creation, to allow the creation of WeakEvents &lt;/li&gt;
&lt;li&gt;Weak event subscription, which also allows auto unsubscriptions &lt;/li&gt;
&lt;li&gt;Weak reference based disconnected messaging Via Mediator pattern &lt;/li&gt;
&lt;li&gt;Customizable IOC/DI container support for UI Services (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;Managed Extensibility support for UI Services (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;MVVM MenuItem support &lt;/li&gt;
&lt;li&gt;Closeable ViewModels (when you are using TabControl say) &lt;/li&gt;
&lt;li&gt;Workspace supporting View 1st (Cinch V2 WPF Only) &lt;/li&gt;
&lt;li&gt;Design time data support (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;Handful of utilities such as 
&lt;ul&gt;&lt;li&gt;Weak reference based INotifyProperty observer &lt;/li&gt;
&lt;li&gt;INotifyProperty property name Expression tree helper &lt;/li&gt;
&lt;li&gt;Binding evaluators (Cinch V2) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Threading helpers 
&lt;ul&gt;&lt;li&gt;Dispatcher extension methods to allow quick marshalling of a Action&amp;lt;T&amp;gt; to the correct UI Dispatcher &lt;/li&gt;
&lt;li&gt;Application.DoEvents &lt;/li&gt;
&lt;li&gt;Application.DoEvents (for a certain Dispatcher Priority) &lt;/li&gt;
&lt;li&gt;BackgroundTaskManager with callback to alert waiting Unit tests of completion, to allow test to complete or timeout &lt;/li&gt;
&lt;li&gt;ObservableCollection, which notifies CollectionChanged on correct Dispatcher thread &lt;/li&gt;
&lt;li&gt;ObservableCollection, which allows a range of items to be added &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;UI Services 
&lt;ul&gt;&lt;li&gt;Event Logger (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;MessageBox (Cinch V1 and Cinch V2 WPF/SL) &lt;/li&gt;
&lt;li&gt;Open File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Save File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Popup Window (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Child Window (Cinch V2 SL) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ViewModel code generator &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;Cinch is not meant for creating modular UIs, like PRISM, but it does offer a great many other features that are comparable with PRISM such as&lt;br /&gt;&lt;br /&gt;PRISM EventAggregator  == Cinch Mediator&lt;br /&gt;PRISM UI Service location == Cinch UI Services&lt;br /&gt;&lt;br /&gt;And to some extent PRISM Regions == Cinch Workspaces, though I have to say PRISM regions are excellent, however with Cinch V2 you can also use PRISM v4 (which is MEF based) regions/modules with ease. So you can have your cake and eat it too. &lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Cinch V1&lt;/h3&gt;Cinch V1 is a VS2008 solution which only supported WPF, and was aimed at doing MVVM in a ViewModel 1st approach here is a diagram that may help to cement the list above:&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1_WPF.png" /&gt;&lt;br /&gt;&lt;br /&gt;And here is a screen shot of it the demo app that went with Cinch V1&lt;br /&gt;Where it used EntityFramework to use with a simple search type UI, and it demonstrates validation/editing of object, cancelling edits, messaging using the Mediator&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1Demo.png" /&gt;&lt;br /&gt;&lt;br /&gt;Cinch originally started as a codeproject atricle, and people asked me to move the code to codeplex, which I did, but all the documentation is available on codeproject and that should be used as main source of information regarding Cinch. &lt;br /&gt;&lt;br /&gt;I will maintain a set of links here, which point to codeproject.&lt;br /&gt;&lt;br /&gt;Cinch V1 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/Cinch.aspx" class="externalLink"&gt;A discussion of what would be included in Cinch (much the same as the list above)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx" class="externalLink"&gt;A discussion of attached behaviours/attached commands/modes/weak events/mediator usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx" class="externalLink"&gt;A discussion of UI services/threading helpers/Menus the MVVM way/closeable tabs the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx" class="externalLink"&gt;A discussion of how to develop models/ViewModels using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx" class="externalLink"&gt;A discussion of how to unit test using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchVI.aspx" class="externalLink"&gt;A discussion on the Cinch demo&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;Cinch V2&lt;/h3&gt;Cinch V2 is a VS2010 solution which supports WPF/Silverlight 4, and was aimed at doing MVVM in a View 1st using design time service which would provide design time data to Blend. It uses Managed Extensibility framework to do all this.&lt;br /&gt;Here are some screen shots of the Cinch V2 demo apps:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cinch V2 WPF Demo&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
This is the architecural image for Cinch V2 WPF&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_WPF.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the WPF demo app&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfDemo_thumb.png" /&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;And here it is in Blend, note that design time data&lt;br /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfBlend1.png" /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;**&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Cinch V2 SilverlightDemo&lt;/b&gt;&lt;br /&gt;This is the architecural image for Cinch V2 Silverlight&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_SL.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the Silverlight demo app&lt;/li&gt;&lt;/ul&gt;
&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb1.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb2.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb3.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cinch V2 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx" class="externalLink"&gt;Discussed the use of MEF and the MefedMVVM library within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx" class="externalLink"&gt;Discussed the WPF/SL and common services within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx" class="externalLink"&gt;Discussed the new features of Cinch V2 that were not in Cinch V1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx" class="externalLink"&gt;A Deep Dive Into What Has Changed/What Has Stayed The Same&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;b&gt;Community based articles:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is also another very nice demo/project that utilises Cinch V2 for WPF available at &lt;a href="http://sqlservercompanion.codeplex.com/" class="externalLink"&gt;SQL Server Companion WPF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; which basically looks like this&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=SqlServerCompanion&amp;amp;DownloadId=273740" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch V2 Working With PRISM v4&lt;/h2&gt;For those of you that love PRISM, and want to use PRISM things like Regions/Modules, good news CinchV2 works seamlessly with PRISM 4, you can read all about it using this article
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx" class="externalLink"&gt;Showcasing Cinch MVVM framework / PRISM 4 interoperability&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;I have created 2 demos to showcase this in the article and here are some screen shots of them in all their glory&lt;br /&gt;&lt;br /&gt;Demo 1 : Shows how to use a custom region adaptor (but does not use regions), and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo1_3.png" /&gt;&lt;br /&gt;&lt;br /&gt;Demo 2 : Shows how to use a regions/modules, and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo2.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch ViewModel Code Generator&lt;/h2&gt;Cinch V1 and Cinch V2 development can be greatly sped up by using the code generator that comes with Cinch. It is actually available within the Cinch V1 solution, but works for both Cinch V1 and Cinch V2 ViewModels&lt;br /&gt;There is an article describing how to use the code generator over at codeproject which you can read using the following link
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx" class="externalLink"&gt;Cinch code generator article&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
And here is what it looks like when it is running&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchCodeGen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch Code Snippets&lt;/h2&gt;There are a number of community contributed code snippets, which I have checked and these are available from the Cinch patch list using this url:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Cinch&amp;amp;DownloadId=93563" class="externalLink"&gt;Cinch Visual Studio code snippets&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
Whats inside:
&lt;ol&gt;&lt;li&gt;Cinch: EditableValidatingObject overrides &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for collections &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged &lt;/li&gt;
&lt;li&gt;Cinch: Command &lt;/li&gt;
&lt;li&gt;Cinch: Background worker &lt;/li&gt;
&lt;li&gt;Cinch: ViewMode &lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 06 Sep 2011 07:24:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110906072423A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
&lt;br /&gt;With Cinch V2, I swapped out the standard IOC container support for the use of Managed Extensibility Framework (&lt;a href="http://mef.codeplex.com/" class="externalLink"&gt;MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), and I also took a dependency on the fabulous &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and it is thanks to &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Behaviours&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Triggers&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Actions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx#Mess" class="externalLink"&gt;8.1 Mediator Messaging (Small change since Cinch V1, you now need to register Manually)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;A Few Notes About BLEND&lt;/h1&gt;One user reported some strange issues using MefedMVVM and Cinch together with Blend, and was getting multiple contract imports occurring. This ended up being down to BLEND keeping a cached copy of some Dlls in a cached folder. This is one gotcha that I thought I should write down here in case anyone comes across it.&lt;br /&gt;&lt;br /&gt;So if you find MEF catalog issues please do the following 2 things:
&lt;ul&gt;&lt;li&gt;Ensure the Blend cache is cleaned up, the location of which may vary depending on what OS you are running. I am running Win7 and for me that is located here : &amp;quot; C:\Users\barbers\AppData\Local\Microsoft\Expression\Blend\Project&amp;quot;, but for the reporter of the error this was located at &amp;quot;C:\Users\xxx\AppData\Local\Microsoft\Expression\Blend&amp;quot;&lt;/li&gt;
&lt;li&gt;Another gotcha is if you are working with references, you may come across MEF errors then too, you can see Marlons blog for a solution to this, which involves &amp;quot;CopyLocal=false&amp;quot; fix, see Marlons Blog &lt;a href="http://marlongrech.wordpress.com/2010/05/03/mef-deploymentcatalog-and-reference-assemblies/" class="externalLink"&gt;MEF DeploymentCatalog and Reference assemblies&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 23 Aug 2011 14:28:56 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110823022856P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=17</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
&lt;br /&gt;With Cinch V2, I swapped out the standard IOC container support for the use of Managed Extensibility Framework (&lt;a href="http://mef.codeplex.com/" class="externalLink"&gt;MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), and I also took a dependency on the fabulous &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and it is thanks to &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Behaviours&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Triggers&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Actions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx#Mess" class="externalLink"&gt;8.1 Mediator Messaging (Small change since Cinch V1, you now need to register Manually)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 26 Jul 2011 14:09:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110726020937P</guid></item><item><title>Updated Wiki: Home</title><link>http://cinch.codeplex.com/wikipage?version=25</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;What Is Cinch?&lt;/h1&gt;Cinch is a MVVM framework that exposes a number of helper classes to allow the developer to quickly get to grips with creating scalable testable MVVM frameworks as quickly as possible.&lt;br /&gt;&lt;br /&gt;Testing was of paramount importance, and Cinch has had this issue in mind from the very beginning, as such you should find it very easy to unit test your code when using Cinch.&lt;br /&gt;&lt;br /&gt;Cinch has 2 active releases
&lt;ol&gt;&lt;li&gt;Cinch V1 : WPF Only &lt;/li&gt;
&lt;li&gt;Cinch V2 : Which is WPF and Silverlight (4.0 or above) &lt;/li&gt;&lt;/ol&gt;
Here is a list of features that Cinch provides
&lt;ul&gt;&lt;li&gt;View lifecycle events in your ViewModel either by attached behaviours (Cinch V1) or via a deciated UI service (Cinch V2) &lt;/li&gt;
&lt;li&gt;Event To ICommand preversing all relavant data such as Sender/EventArgs etc etc &lt;/li&gt;
&lt;li&gt;IEditableObject support on Models (Cinch V1) and ViewModels (Cinch V1 and Cinch V2). Which allows the store/restore of ViewModel object state on edit / cancel edit &lt;/li&gt;
&lt;li&gt;Flexable delegate based validation rules &lt;/li&gt;
&lt;li&gt;Native IDataErrorInfo support using the Delegate rules approach &lt;/li&gt;
&lt;li&gt;Weak event creation, to allow the creation of WeakEvents &lt;/li&gt;
&lt;li&gt;Weak event subscription, which also allows auto unsubscriptions &lt;/li&gt;
&lt;li&gt;Weak reference based disconnected messaging Via Mediator pattern &lt;/li&gt;
&lt;li&gt;Customizable IOC/DI container support for UI Services (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;Managed Extensibility support for UI Services (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;MVVM MenuItem support &lt;/li&gt;
&lt;li&gt;Closeable ViewModels (when you are using TabControl say) &lt;/li&gt;
&lt;li&gt;Workspace supporting View 1st (Cinch V2 WPF Only) &lt;/li&gt;
&lt;li&gt;Design time data support (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;Handful of utilities such as 
&lt;ul&gt;&lt;li&gt;Weak reference based INotifyProperty observer &lt;/li&gt;
&lt;li&gt;INotifyProperty property name Expression tree helper &lt;/li&gt;
&lt;li&gt;Binding evaluators (Cinch V2) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Threading helpers 
&lt;ul&gt;&lt;li&gt;Dispatcher extension methods to allow quick marshalling of a Action&amp;lt;T&amp;gt; to the correct UI Dispatcher &lt;/li&gt;
&lt;li&gt;Application.DoEvents &lt;/li&gt;
&lt;li&gt;Application.DoEvents (for a certain Dispatcher Priority) &lt;/li&gt;
&lt;li&gt;BackgroundTaskManager with callback to alert waiting Unit tests of completion, to allow test to complete or timeout &lt;/li&gt;
&lt;li&gt;ObservableCollection, which notifies CollectionChanged on correct Dispatcher thread &lt;/li&gt;
&lt;li&gt;ObservableCollection, which allows a range of items to be added &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;UI Services 
&lt;ul&gt;&lt;li&gt;Event Logger (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;MessageBox (Cinch V1 and Cinch V2 WPF/SL) &lt;/li&gt;
&lt;li&gt;Open File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Save File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Popup Window (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Child Window (Cinch V2 SL) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ViewModel code generator &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;Cinch is not meant for creating modular UIs, like PRISM, but it does offer a great many other features that are comparable with PRISM such as&lt;br /&gt;&lt;br /&gt;PRISM EventAggregator  == Cinch Mediator&lt;br /&gt;PRISM UI Service location == Cinch UI Services&lt;br /&gt;&lt;br /&gt;And to some extent PRISM Regions == Cinch Workspaces, though I have to say PRISM regions are excellent, however with Cinch V2 you can also use PRISM v4 (which is MEF based) regions/modules with ease. So you can have your cake and eat it too. &lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Cinch V1&lt;/h3&gt;Cinch V1 is a VS2008 solution which only supported WPF, and was aimed at doing MVVM in a ViewModel 1st approach here is a diagram that may help to cement the list above:&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1_WPF.png" /&gt;&lt;br /&gt;&lt;br /&gt;And here is a screen shot of it the demo app that went with Cinch V1&lt;br /&gt;Where it used EntityFramework to use with a simple search type UI, and it demonstrates validation/editing of object, cancelling edits, messaging using the Mediator&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1Demo.png" /&gt;&lt;br /&gt;&lt;br /&gt;Cinch originally started as a codeproject atricle, and people asked me to move the code to codeplex, which I did, but all the documentation is available on codeproject and that should be used as main source of information regarding Cinch. &lt;br /&gt;&lt;br /&gt;I will maintain a set of links here, which point to codeproject.&lt;br /&gt;&lt;br /&gt;Cinch V1 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/Cinch.aspx" class="externalLink"&gt;A discussion of what would be included in Cinch (much the same as the list above)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx" class="externalLink"&gt;A discussion of attached behaviours/attached commands/modes/weak events/mediator usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx" class="externalLink"&gt;A discussion of UI services/threading helpers/Menus the MVVM way/closeable tabs the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx" class="externalLink"&gt;A discussion of how to develop models/ViewModels using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx" class="externalLink"&gt;A discussion of how to unit test using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchVI.aspx" class="externalLink"&gt;A discussion on the Cinch demo&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;Cinch V2&lt;/h3&gt;Cinch V2 is a VS2010 solution which supports WPF/Silverlight 4, and was aimed at doing MVVM in a View 1st using design time service which would provide design time data to Blend. It uses Managed Extensibility framework to do all this.&lt;br /&gt;Here are some screen shots of the Cinch V2 demo apps:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cinch V2 WPF Demo&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
This is the architecural image for Cinch V2 WPF&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_WPF.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the WPF demo app&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfDemo_thumb.png" /&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;And here it is in Blend, note that design time data&lt;br /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfBlend1.png" /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;**&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Cinch V2 SilverlightDemo&lt;/b&gt;&lt;br /&gt;This is the architecural image for Cinch V2 Silverlight&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_SL.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the Silverlight demo app&lt;/li&gt;&lt;/ul&gt;
&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb1.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb2.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb3.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cinch V2 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx" class="externalLink"&gt;Discussed the use of MEF and the MefedMVVM library within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx" class="externalLink"&gt;Discussed the WPF/SL and common services within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx" class="externalLink"&gt;Discussed the new features of Cinch V2 that were not in Cinch V1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx" class="externalLink"&gt;A Deep Dive Into What Has Changed/What Has Stayed The Same&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;b&gt;Community based articles:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch V2 Working With PRISM v4&lt;/h2&gt;For those of you that love PRISM, and want to use PRISM things like Regions/Modules, good news CinchV2 works seamlessly with PRISM 4, you can read all about it using this article
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx" class="externalLink"&gt;Showcasing Cinch MVVM framework / PRISM 4 interoperability&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;I have created 2 demos to showcase this in the article and here are some screen shots of them in all their glory&lt;br /&gt;&lt;br /&gt;Demo 1 : Shows how to use a custom region adaptor (but does not use regions), and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo1_3.png" /&gt;&lt;br /&gt;&lt;br /&gt;Demo 2 : Shows how to use a regions/modules, and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo2.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch ViewModel Code Generator&lt;/h2&gt;Cinch V1 and Cinch V2 development can be greatly sped up by using the code generator that comes with Cinch. It is actually available within the Cinch V1 solution, but works for both Cinch V1 and Cinch V2 ViewModels&lt;br /&gt;There is an article describing how to use the code generator over at codeproject which you can read using the following link
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx" class="externalLink"&gt;Cinch code generator article&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
And here is what it looks like when it is running&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchCodeGen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch Code Snippets&lt;/h2&gt;There are a number of community contributed code snippets, which I have checked and these are available from the Cinch patch list using this url:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Cinch&amp;amp;DownloadId=93563" class="externalLink"&gt;Cinch Visual Studio code snippets&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
Whats inside:
&lt;ol&gt;&lt;li&gt;Cinch: EditableValidatingObject overrides &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for collections &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged &lt;/li&gt;
&lt;li&gt;Cinch: Command &lt;/li&gt;
&lt;li&gt;Cinch: Background worker &lt;/li&gt;
&lt;li&gt;Cinch: ViewMode &lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 22 Mar 2011 20:16:37 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110322081637P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=16</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
http://mef.codeplex.com/&lt;br /&gt;&lt;br /&gt;With Cinch V2, I swapped out the standard IOC container support for the use of Managed Extensibility Framework (&lt;a href="http://mef.codeplex.com/" class="externalLink"&gt;MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), and I also took a dependency on the fabulous &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and it is thanks to &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Behaviours&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Triggers&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Actions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx#Mess" class="externalLink"&gt;8.1 Mediator Messaging (Small change since Cinch V1, you now need to register Manually)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Mon, 21 Mar 2011 20:28:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110321082857P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=15</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
http://mef.codeplex.com/&lt;br /&gt;&lt;br /&gt;With Cinch V2, I swapped out the standard IOC container support for the use of Managed Extensibility Framework (&lt;a href="http://mef.codeplex.com/" class="externalLink"&gt;MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), and I also took a dependency on the fabulous &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; and it is thanks to &lt;a href="http://mefedmvvm.codeplex.com/" class="externalLink"&gt;MEFedMVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Behaviours&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Triggers&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Actions&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;8.1 Mediator Messaging (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Thu, 20 Jan 2011 13:18:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110120011826P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=14</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;
&lt;h2&gt;Behaviours&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Triggers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Actions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;8.1 Mediator Messaging (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 19 Jan 2011 13:39:46 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110119013946P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=13</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;
&lt;h2&gt;Behaviours&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Triggers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Actions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;8.1 Mediator Messaging (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Related Demo Articles&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;

&lt;h1&gt;Cinch V2 Working With PRISM 4&lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 19 Jan 2011 13:39:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110119013914P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=12</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;
&lt;h2&gt;Behaviours&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Triggers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Actions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course. I have not discussed Unit testing in any of the new Cinch V2 material, as it has largely stayed the same as Cinch V1, though where I have introduced new services I have also included new test doubles (essentially pre built mocks for you to use) in the Cinch V2 codebase.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://4 Developing Models Using Cinch" class="externalLink"&gt;4 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NOTE : This is no longer possible in Cinch V2&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;5 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;5.1 Choosing a ViewModel Base Class (No Change to available base classes types since Cinch V1, but there are differences in implementation)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;5.2 Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;5.3 Mode Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;6.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;6.2 IEditableObject Support (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;6.3 View Model Modes (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;6.4 Closeable ViewModels (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;6.5 Doing MenuItems the MVVM way (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;6.1 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;6.1.1 Validation Rules/IDataErrorInfo Integration (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;7.1 WeakEvent Creation (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;7.2 WeakEvent Subscription (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;8.1 Mediator Messaging (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;9 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;9.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;VisualStateManagerService (SL and WPF)&lt;/li&gt;
&lt;li&gt;SLMessageBoxService (SL only)&lt;/li&gt;
&lt;li&gt;ChildWindowService (SL only)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (SL version)&lt;/li&gt;
&lt;li&gt;ViewAwareStatus (WPF version)&lt;/li&gt;
&lt;li&gt;WPFMessageBoxService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFOpenFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFSaveFileService (WPF only)&lt;/li&gt;
&lt;li&gt;WPFUIVisualizerService (WPF only)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;9.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;10 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;10.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;10.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;10.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;10.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;10.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;Dispatcher extension methods (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;App.DoEvents (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;Background Tasks (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;dispatcherNotifiedObservableCollection (No Change since Cinch V1)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;11 Unit Testing  (No Change since Cinch V1)
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;11.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;11.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;11.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;11.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;11.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;11.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;11.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;11.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;11.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;11.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;NOTE : There are additional test doubles for ViewAwareStatusWindow (WPF Only), and TestViewAwareStatus (UserControl so for Silverlight and WPF), and TestVVSMService&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 19 Jan 2011 13:29:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110119012921P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=11</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. Marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;
&lt;h2&gt;Behaviours&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Triggers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Actions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper, and there are some services which were fine in Cinch V1, that have simply been made available via MEF. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;4 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;4.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;4.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;5 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;5.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;5.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;5.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;5.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;5.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 19 Jan 2011 08:43:18 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110119084318A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. &lt;br /&gt;&lt;br /&gt;The following are now available in Cinch V2 where these replace the Cinch V1 attached behaviour DPs, and there are some new ones too.&lt;br /&gt;
&lt;h2&gt;Behaviours&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Triggers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CompletedAwareCommandTrigger&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Actions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;CommandDrivenGoToStateAction&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#Service" class="externalLink"&gt;4 Services/UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#CoreServices" class="externalLink"&gt;4.1 Core Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx#UIServices" class="externalLink"&gt;4.2 UI Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#BrandNewStuff" class="externalLink"&gt;5 New Stuff For CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#SimpleCommand" class="externalLink"&gt;5.1 SimpleCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Interactivity" class="externalLink"&gt;5.2 Actions/Triggers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;NumericTextBoxBehaviour (WPF Only)&lt;/li&gt;
&lt;li&gt;SelectorDoubleClickCommandBehavior  (WPF Only)&lt;/li&gt;
&lt;li&gt;TextBoxFocusBehavior   (WPF Only)&lt;/li&gt;
&lt;li&gt;CompletedAwareCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CompletedAwareGotoStateCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;EventToCommandTrigger (SL and WPF)&lt;/li&gt;
&lt;li&gt;CommandDrivenGoToStateAction (SL and WPF)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#Workspaces" class="externalLink"&gt;5.3 Workspaces&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraThreadingHelpers" class="externalLink"&gt;5.4 Extra Threading Helpers&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx#ExtraUtilities" class="externalLink"&gt;5.5 Extra Utilities&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;PropertyChangedEventManager for SL&lt;/li&gt;
&lt;li&gt;BindingEvaluator for WPF&lt;/li&gt;
&lt;li&gt;ObservableDictionary for WPF&lt;/li&gt;
&lt;li&gt;TreeHelper for WPF, &lt;/li&gt;
&lt;li&gt;ArgumentValidator for both SL and WPF &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 18 Jan 2011 16:06:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110118040642P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
With Cinch V2, I swapped out the standard IOC container support for the use of MEF, and I also took a dependency on the fabulous &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; project by my good friend Marlon Grech. marlon did an amazing job with &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; and it is thanks to &lt;a href="http://cinch.codeplex.com/wikipage?title=http%3a%2f%2fmefedmvvm.codeplex.com%2f&amp;referringTitle=Documentation"&gt;MEFedMVVM&lt;/a&gt; that Cinch V2 is able to offer such great design time support for services. &lt;br /&gt;&lt;br /&gt;I also took the time to try and create a View 1st workspace arrangement for WPF, and update all attached properties to use the newest best practices of using the Blend Interactivity Behaviours/Triggers/Actions. At the same time I also made Cinch support Silverlight 4 or above. Cinch V2 offers many of the same features that Cinch V1 one had, like the choice of ViewModel base classes, and DataWrapper. This is good for everyone as these are good features that worked just fine. What is new is that there are a number of new services, and as I stated there is now support for design time data, and for Silverlight of course.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatsNew" class="externalLink"&gt;1 What&amp;#39;s New&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#whatWillBreak" class="externalLink"&gt;2 What Will Break If I Am A Cinch V1 User&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MefedMVMM" class="externalLink"&gt;3 MEFedMVVM And ViewModel/Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#MEF" class="externalLink"&gt;3.1 What&amp;#39;s MEF&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#IntroducingMefedMVMM" class="externalLink"&gt;3.2 Introducing MefedMVMM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#TheBasics" class="externalLink"&gt;3.3 The Basic Idea&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewModelResolution" class="externalLink"&gt;3.4 View-ViewModel Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ServiceResolution" class="externalLink"&gt;3.5 Service Resolution&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx#ViewContext" class="externalLink"&gt;3.6 View Context&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 18 Jan 2011 15:48:58 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110118034858P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
There is a code generator application that can be used to create CinchV1/V2 ViewModels. It was originally written for Cinch V1, so you will find it in the CinchV1 folder in the source code. Below is a list of the documentation for the code generator&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#int" class="externalLink"&gt;1 Introductions&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#preReq" class="externalLink"&gt;2 Prerequisites&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Steps" class="externalLink"&gt;3 Steps To Follow To Start Churning Out Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Works" class="externalLink"&gt;4 How It All Works, For Those That Care&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Structure" class="externalLink"&gt;4.1 Structure Of The App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Persistence" class="externalLink"&gt;4.2 ViewModel Persistence To/From XML&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#RefAss" class="externalLink"&gt;4.3 Referenced Assembly Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Props" class="externalLink"&gt;4.4 Property Management&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#Compilation" class="externalLink"&gt;4.5 Code Compilation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx#GenCode" class="externalLink"&gt;4.6 The Stucture Of The Generated Code&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 13:09:35 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110112010935P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module. The links below will talk you through that, and you can see how what the 2 demo apps look like on the &lt;a href="http://cinch.codeplex.com/" class="externalLink"&gt;Cinch Home page&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; here at codeplex.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 11:26:39 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110112112639A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module&lt;br /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 11:24:43 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110112112443A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module&lt;br /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 11:24:26 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110112112426A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;h1&gt;Cinch V2 Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V1/V2 Common Code Generator Documentation&lt;/h1&gt;
Coming very soon&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h1&gt;Cinch V2 Working With PRISM 4 &lt;/h1&gt;
Since the introduction of Cinch V2 and the latest release of PRISM (which uses MEF) Cinch V2 and PRISM can work together very easily, as such I have created a couple of demo applications which show case Cinch V2 working with PRISM 4 features like Regions/Module&lt;br /&gt;&lt;br /&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1 Demo App1 : Using PRISM regions/modules&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo1" class="externalLink"&gt;1.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork1" class="externalLink"&gt;1.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell1" class="externalLink"&gt;1.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#region1" class="externalLink"&gt;1.2.2 DEMO 1 : Custom region adaptor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper1" class="externalLink"&gt;1.2.3 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome1" class="externalLink"&gt;1.2.4 DEMO 1 : Welcome View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#imageView1" class="externalLink"&gt;1.2.5 DEMO 1 : Image View&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#demo2" class="externalLink"&gt;2 Demo App1 : Using PRISM regions with custom region adaptors&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#look2" class="externalLink"&gt;2.1 DEMO 1 : What does it look like?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#howsItWork2" class="externalLink"&gt;2.2 DEMO 1 : How does it all work?&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#shell2" class="externalLink"&gt;2.2.1 DEMO 1 : The shell&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#bootstrapper2" class="externalLink"&gt;2.2.2 DEMO 1 : Bootstrapper&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#welcome2" class="externalLink"&gt;2.2.3 DEMO 1 : Welcome Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx#list2" class="externalLink"&gt;2.2.4 DEMO 1 : Image Module&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;For the full article you can simply use this link : &lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx" class="externalLink"&gt;Showcasing Cinch MVVM framework / PRISM 4 interoperability&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 11:24:13 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110112112413A</guid></item><item><title>Updated Wiki: Home</title><link>http://cinch.codeplex.com/wikipage?version=24</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;What Is Cinch?&lt;/h1&gt;Cinch is a MVVM framework that exposes a number of helper classes to allow the developer to quickly get to grips with creating scalable testable MVVM frameworks as quickly as possible.&lt;br /&gt;&lt;br /&gt;Testing was of paramount importance, and Cinch has had this issue in mind from the very beginning, as such you should find it very easy to unit test your code when using Cinch.&lt;br /&gt;&lt;br /&gt;Cinch has 2 active released
&lt;ol&gt;&lt;li&gt;Cinch V1 : WPF Only &lt;/li&gt;
&lt;li&gt;Cinch V2 : Which is WPF and Silverlight (4.0 or above) &lt;/li&gt;&lt;/ol&gt;
Here is a list of features that Cinch provides
&lt;ul&gt;&lt;li&gt;View lifecycle events in your ViewModel either by attached behaviours (Cinch V1) or via a deciated UI service (Cinch V2) &lt;/li&gt;
&lt;li&gt;Event To ICommand preversing all relavant data such as Sender/EventArgs etc etc &lt;/li&gt;
&lt;li&gt;IEditableObject support on Models (Cinch V1) and ViewModels (Cinch V1 and Cinch V2). Which allows the store/restore of ViewModel object state on edit / cancel edit &lt;/li&gt;
&lt;li&gt;Flexable delegate based validation rules &lt;/li&gt;
&lt;li&gt;Native IDataErrorInfo support using the Delegate rules approach &lt;/li&gt;
&lt;li&gt;Weak event creation, to allow the creation of WeakEvents &lt;/li&gt;
&lt;li&gt;Weak event subscription, which also allows auto unsubscriptions &lt;/li&gt;
&lt;li&gt;Weak reference based disconnected messaging Via Mediator pattern &lt;/li&gt;
&lt;li&gt;Customizable IOC/DI container support for UI Services (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;Managed Extensibility support for UI Services (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;MVVM MenuItem support &lt;/li&gt;
&lt;li&gt;Closeable ViewModels (when you are using TabControl say) &lt;/li&gt;
&lt;li&gt;Workspace supporting View 1st (Cinch V2 WPF Only) &lt;/li&gt;
&lt;li&gt;Design time data support (Cinch V2 Only) &lt;/li&gt;
&lt;li&gt;Handful of utilities such as 
&lt;ul&gt;&lt;li&gt;Weak reference based INotifyProperty observer &lt;/li&gt;
&lt;li&gt;INotifyProperty property name Expression tree helper &lt;/li&gt;
&lt;li&gt;Binding evaluators (Cinch V2) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Threading helpers 
&lt;ul&gt;&lt;li&gt;Dispatcher extension methods to allow quick marshalling of a Action&amp;lt;T&amp;gt; to the correct UI Dispatcher &lt;/li&gt;
&lt;li&gt;Application.DoEvents &lt;/li&gt;
&lt;li&gt;Application.DoEvents (for a certain Dispatcher Priority) &lt;/li&gt;
&lt;li&gt;BackgroundTaskManager with callback to alert waiting Unit tests of completion, to allow test to complete or timeout &lt;/li&gt;
&lt;li&gt;ObservableCollection, which notifies CollectionChanged on correct Dispatcher thread &lt;/li&gt;
&lt;li&gt;ObservableCollection, which allows a range of items to be added &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;UI Services 
&lt;ul&gt;&lt;li&gt;Event Logger (Cinch V1 Only) &lt;/li&gt;
&lt;li&gt;MessageBox (Cinch V1 and Cinch V2 WPF/SL) &lt;/li&gt;
&lt;li&gt;Open File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Save File (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Popup Window (Cinch V1 and Cinch V2 WPF) &lt;/li&gt;
&lt;li&gt;Child Window (Cinch V2 SL) &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ViewModel code generator &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;Cinch is not meant for creating modular UIs, like PRISM, but it does offer a great many other features that are comparable with PRISM such as&lt;br /&gt;&lt;br /&gt;PRISM EventAggregator  == Cinch Mediator&lt;br /&gt;PRISM UI Service location == Cinch UI Services&lt;br /&gt;&lt;br /&gt;And to some extent PRISM Regions == Cinch Workspaces, though I have to say PRISM regions are excellent, however with Cinch V2 you can also use PRISM v4 (which is MEF based) regions/modules with ease. So you can have your cake and eat it too. &lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Cinch V1&lt;/h3&gt;Cinch V1 is a VS2008 solution which only supported WPF, and was aimed at doing MVVM in a ViewModel 1st approach here is a diagram that may help to cement the list above:&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1_WPF.png" /&gt;&lt;br /&gt;&lt;br /&gt;And here is a screen shot of it the demo app that went with Cinch V1&lt;br /&gt;Where it used EntityFramework to use with a simple search type UI, and it demonstrates validation/editing of object, cancelling edits, messaging using the Mediator&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV1Demo.png" /&gt;&lt;br /&gt;&lt;br /&gt;Cinch originally started as a codeproject atricle, and people asked me to move the code to codeplex, which I did, but all the documentation is available on codeproject and that should be used as main source of information regarding Cinch. &lt;br /&gt;&lt;br /&gt;I will maintain a set of links here, which point to codeproject.&lt;br /&gt;&lt;br /&gt;Cinch V1 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/Cinch.aspx" class="externalLink"&gt;A discussion of what would be included in Cinch (much the same as the list above)&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx" class="externalLink"&gt;A discussion of attached behaviours/attached commands/modes/weak events/mediator usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx" class="externalLink"&gt;A discussion of UI services/threading helpers/Menus the MVVM way/closeable tabs the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx" class="externalLink"&gt;A discussion of how to develop models/ViewModels using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx" class="externalLink"&gt;A discussion of how to unit test using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchVI.aspx" class="externalLink"&gt;A discussion on the Cinch demo&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;Cinch V2&lt;/h3&gt;Cinch V2 is a VS2010 solution which supports WPF/Silverlight 4, and was aimed at doing MVVM in a View 1st using design time service which would provide design time data to Blend. It uses Managed Extensibility framework to do all this.&lt;br /&gt;Here are some screen shots of the Cinch V2 demo apps:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Cinch V2 WPF Demo&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;
This is the architecural image for Cinch V2 WPF&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_WPF.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the WPF demo app&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfDemo_thumb.png" /&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;And here it is in Blend, note that design time data&lt;br /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/05/wpfBlend1.png" /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;**&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Cinch V2 SilverlightDemo&lt;/b&gt;&lt;br /&gt;This is the architecural image for Cinch V2 Silverlight&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchV2_SL.png" /&gt;
&lt;ul&gt;&lt;li&gt;Here are some screen shots of the Silverlight demo app&lt;/li&gt;&lt;/ul&gt;
&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb1.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb2.png" /&gt;&lt;br /&gt;&lt;img src="http://sachabarber.net/wp-content/uploads/2010/06/image_thumb3.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cinch V2 article links are as follows:
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_1.aspx" class="externalLink"&gt;Discussed the use of MEF and the MefedMVVM library within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_2.aspx" class="externalLink"&gt;Discussed the WPF/SL and common services within CinchV2&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_3.aspx" class="externalLink"&gt;Discussed the new features of Cinch V2 that were not in Cinch V1&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_4.aspx" class="externalLink"&gt;A Deep Dive Into What Has Changed/What Has Stayed The Same&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_5.aspx" class="externalLink"&gt;Disecting The WPF Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2_6.aspx" class="externalLink"&gt;Disecting The SL4 Demo App&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;
&lt;b&gt;Community based articles:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/silverlight/MvvmSilverlightNavigation.aspx" class="externalLink"&gt;How to convert a Silverlight Navigation Application to use MVVM using Cinch V2. Which basically shows you how to use the Silverlight inbuilt navigation features with CinchV2 for Silverlight&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch V2 Working With PRISM v4&lt;/h2&gt;For those of you that love PRISM, and want to use PRISM things like Regions/Modules, good news CinchV2 works seamlessly with PRISM 4, you can read all about it using this article
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4.aspx" class="externalLink"&gt;Showcasing Cinch MVVM framework / PRISM 4 interoperability&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;I have created 2 demos to showcase this in the article and here are some screen shots of them in all their glory&lt;br /&gt;&lt;br /&gt;Demo 1 : Shows how to use a custom region adaptor (but does not use regions), and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo1_3.png" /&gt;&lt;br /&gt;&lt;br /&gt;Demo 2 : Shows how to use a regions/modules, and also uses some CinchV2 goodies&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.codeproject.com/KB/WPF/CinchV2AndPRISM4/demo2.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch ViewModel Code Generator&lt;/h2&gt;Cinch V1 and Cinch V2 development can be greatly sped up by using the code generator that comes with Cinch. It is actually available within the Cinch V1 solution, but works for both Cinch V1 and Cinch V2 ViewModels&lt;br /&gt;There is an article describing how to use the code generator over at codeproject which you can read using the following link
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchCodeGen.aspx" class="externalLink"&gt;Cinch code generator article&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
And here is what it looks like when it is running&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/2600965/CinchCodeGen.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;h2&gt;Cinch Code Snippets&lt;/h2&gt;There are a number of community contributed code snippets, which I have checked and these are available from the Cinch patch list using this url:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=Cinch&amp;amp;DownloadId=93563" class="externalLink"&gt;Cinch Visual Studio code snippets&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
Whats inside:
&lt;ol&gt;&lt;li&gt;Cinch: EditableValidatingObject overrides &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for reference type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged + DataWrapper for value type &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged for collections &lt;/li&gt;
&lt;li&gt;Cinch: INotifyPropertyChanged &lt;/li&gt;
&lt;li&gt;Cinch: Command &lt;/li&gt;
&lt;li&gt;Cinch: Background worker &lt;/li&gt;
&lt;li&gt;Cinch: ViewMode &lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Wed, 12 Jan 2011 09:56:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20110112095602A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;
Cinch V1 is a MVVM framework that provides a number of attached behaviours/UI services and a number of helpers. It was aimed at writing highly testable ViewModels that were written by inheriting from well designed Cinch v1 base ViewModels where a lot of the work had already been done for the user. Cinch V1 used the Unity DI/IOC container out of the box, but could be made to work with any other IOC container fairly easily.&lt;br /&gt;&lt;br /&gt;It had several UI services and also provided test doubles for these services, the following core services are available within Cinch V1&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Logging Service&lt;/li&gt;
&lt;li&gt;MessageBox Service&lt;/li&gt;
&lt;li&gt;Open File Service&lt;/li&gt;
&lt;li&gt;Save File Service&lt;/li&gt;
&lt;li&gt;Popup Window Service&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;It was written for VS2008 and was written before Microsoft formalized a lot of the things WPF developers were already doing. As such since Cinch V1 was released there are better ways to do a few things. Cinch V2 however makes use of all the newer features that are now available both in the Blend Interactivity Dll and the .NET 4.0 Dlls.&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 11 Jan 2011 14:35:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110111023502P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://cinch.codeplex.com/documentation?version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Cinch V1 Documentation&lt;/h1&gt;&lt;h1&gt;&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;1 Attached Behaviours 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Lifecycle" class="externalLink"&gt;1.1 View Lifecycle Events&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#NumericAtt" class="externalLink"&gt;1.2 Numeric Textbox Attached Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#CommandAtt" class="externalLink"&gt;1.3 Attached Command Behaviour&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;2 Model/ViewModel Basics 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#Better_INPC" class="externalLink"&gt;2.1 INotifyPropertyChanged : Dealing with the INPC Smell, No more magic strings&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#IEditableObject" class="externalLink"&gt;2.2 IEditableObject Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#VMModes" class="externalLink"&gt;2.3 View Model Modes&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#CloseVM" class="externalLink"&gt;2.4 Closeable ViewModels&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#WPFMenuItems" class="externalLink"&gt;2.5 Doing MenuItems the MVVM way&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;2.6 Validation 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#validationRules" class="externalLink"&gt;2.6.1 Validation Rules/IDataErrorInfo Integration&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DI" class="externalLink"&gt;2.7 DI/IOC&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Services" class="externalLink"&gt;2.7.1 Exposed services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#EventLoggerServ" class="externalLink"&gt;2.7.1.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#MessageBoxServ" class="externalLink"&gt;2.7.1.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#OpenFileSrv" class="externalLink"&gt;2.7.1.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#SaveFileServ" class="externalLink"&gt;2.7.1.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#PopServ" class="externalLink"&gt;2.7.1.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingModels" class="externalLink"&gt;3 Developing Models Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#DevelopingVMs" class="externalLink"&gt;4 Developing ViewModels Using Cinch&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#ChooseABaseVM" class="externalLink"&gt;4.1 Choosing a ViewModel Base Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#BaseClass" class="externalLink"&gt;4.2 ViewModelBase Class&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Services" class="externalLink"&gt;4.3 How To Use The Exposed Services&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#EventLoggerServ" class="externalLink"&gt;4.3.1 Logging service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#MessageBoxServ" class="externalLink"&gt;4.3.2 MessageBox service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#OpenFileSrv" class="externalLink"&gt;4.3.3 Open File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#SaveFileServ" class="externalLink"&gt;4.3.4 Save File service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#PopServ" class="externalLink"&gt;4.3.5 Popup window service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Background" class="externalLink"&gt;4.4 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIV.aspx#Modes" class="externalLink"&gt;4.5 Mode Support&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;5 Events 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventCreate" class="externalLink"&gt;5.1 WeakEvent Creation&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#WeakEventSubscription" class="externalLink"&gt;5.2 WeakEvent Subscription&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;6 Disconnected Messaging 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchII.aspx#MediatorMessaging" class="externalLink"&gt;6.1 Mediator Messaging&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;7 Helpers 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DispExt" class="externalLink"&gt;7.1 Dispatcher extension methods&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#DoEvents" class="externalLink"&gt;7.2 App.DoEvents&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Background" class="externalLink"&gt;7.3 Background Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#ObsCol" class="externalLink"&gt;7.4 DispatcherNotifiedObservableCollection&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchIII.aspx#Focus" class="externalLink"&gt;7.5 Setting Focus&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;8 Unit Testing  
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Commands" class="externalLink"&gt;8.1 Testing Commands&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Mediator" class="externalLink"&gt;8.2 Testing Mediator&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#BgWorker" class="externalLink"&gt;8.3 Testing Background Worker Tasks&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IData" class="externalLink"&gt;8.4 Testing The Validity Of IDataErrorInfo Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#IEdit" class="externalLink"&gt;8.5 Testing The State Of IEditableObject Supporting Objects&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;8.6 Testing Services 
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#Messager" class="externalLink"&gt;8.6.1 IMessageBox Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#OpenFile" class="externalLink"&gt;8.6.2 IOpenFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#SaveFile" class="externalLink"&gt;8.6.3 ISaveFileService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/CinchV.aspx#UIVisualizer" class="externalLink"&gt;8.6.4 IUIVisualizerService Service&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;hr /&gt;
This WikiPage was created with &lt;a href="http://coplwikieditor.codeplex.com" class="externalLink"&gt;Codeplex WikiEditor&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>sachabarber</author><pubDate>Tue, 11 Jan 2011 13:39:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20110111013951P</guid></item></channel></rss>