Version 4.20

Rating:        Based on 1 rating
Reviewed:  1 review
Downloads: 2750
Change Set: 84685
Released: Aug 13, 2013
Updated: Aug 13, 2013 by markjulmar
Dev status: Stable Help Icon

Recommended Download

Application Binaries for Windows Store MVVMHelpers (1.09)
application, 297K, uploaded May 24, 2013 - 500 downloads

Other Available Downloads

Application MVVMHelpers for WPF 4.0
application, 5026K, uploaded Aug 13, 2013 - 926 downloads
Application MVVMHelpers for WPF 3.5
application, 5447K, uploaded Aug 13, 2013 - 119 downloads
Source Code Source code for MVVMHelpers for WPF
source code, 4034K, uploaded Aug 13, 2013 - 372 downloads
Source Code Test Projects and Samples for MVVMHelpers (WPF)
source code, 1117K, uploaded Aug 13, 2013 - 454 downloads
Source Code Source code and test projects for Windows Store MVVMHelpers (1.09)
source code, 1962K, uploaded May 24, 2013 - 189 downloads
Application MVVMHelpers for WPF 4.5
application, 5113K, uploaded Aug 13, 2013 - 190 downloads

Release Notes

JulMar Model-View-ViewModel library
This library is provided "as-is" with no warranty. It was developed by JulMar Technology, Inc. and is
distributed from You are free to utilize the source code (in whole, or in part) or
provided assembly however you desire, including creating derivative works without any compensation or requirements back
to JulMar Technology, Inc.. Any questions or comments can be directed to "" This libary was intended to be used
as a learning and teaching aid, and I hope it has some value to each person who looks at it.

Mark Smith 5/2009


Initial revision - all basic functionality is present.

1.01: rolled in a bunch of fixes from internal library -- 6/09
Fixed a bug in the event commander which was causing multiple invocations in some cases.
Added support for ShowDialog return results.
Added HelpProvider behavior to support invoking Windows Help
Removed automatic mediator registration from ViewModel - unnecessary perf hit when not using service mediator - you must call RegisterWithMessageMediator() deliberately now.
Added SystemInfo class to retrieve Windows version - can detect difference between W2K8 SP2 and Windows 7 (Environment.OSVersion does not appear to do so).
Added LinearGradientMarkupExtension for easy gradients
Added ENTER/ESC/Fx/CTRL support to NumericTextBoxBehavior.
Added DelegatingCommand<T>
Added ObservableDictionary<K,V>

1.02: additional support 7/09
Added ScrollingPreviewService
Added CommandParameter and Command to EventCommander event arguments
Added Past/Drop conversion to NumericTextBoxBehavior
Split out EditingViewModel into implementation class to make it easier to provide other forms of edit support.
Added PropertyObserver<T> from Josh Smith

1.03: Added new Behaviors assembly 7/30
Added dependency to System.Windows.Interactivity.dll
Ported over existing attached behaviors to Blend style behaviors BREAKING CHANGE
Added WatermarkedTextBoxBehavior
Added InvokeCommand action to bind to VM ICommands
Added CommandEventTrigger to support EventCommander from Blend

1.04: 9/15
Added Designer.InDesignMode static property to test design surface
Added test for null conditions in VisualTreeHelper extensions
Moved ValidatingViewModel into proper namespace
Added clipboard paste support to the WatermarkedTextBoxBehavior
Changed MTObservableCollection<T> to support true multi-threaded access based on discussion on WPFDisciples list.

1.05 11/1
Added support for VS2010 Beta 2
Removed ViewModel.OnPropertiesChanged - merged into ViewModel.OnPropertyChanged BREAKING CHANGE
Added generic support to MessageMediator
Added BindingTrigger to trigger of ViewModel binding values in Blend
Added CloseWindowBehavior to auto-close a dialog or modaless form without code behind
Added SelectTextOnFocusBehavior to select all text in a TextBox when it receives focus
Added ViewportSynchronizerBehavior to track the ViewPort of a ScrollViewer and bind it to ViewModel properties.
Added Dispatcher transition for RaiseClose and RaiseActivate from VM for cross-thread invocation
Added MultiConverter to aggregate value converters together.
Added ScrollingPreviewBehavior and ScrollBarPreviewBehaviors (replaced ScrollingPreviewService)
Added DeferredScrollBehavior

1.06 4/2010
Added new behaviors and converters. Synched with private library

2.00 4/2010
First full targeted .NET 4.0 release
Added MEF support to locate services using ExportServiceProvider
Added MEF support to locate ViewModels using ExportViewModel
Added MEF support to locate Views using ExportUIVisualization
Cleanup of library to target both .NET 3.5 and .NET 4.0

3.00 6/2010
Added undo/redo framework
Added CollectionObserver
Updated PropertyObserver to allow global property notifications
Added DataGridRowDragBehavior
Added ItemsControl drag/drop behavior

3.5 7/2010
Split out Julmar.Core to contain non-WPF specific types.
Moved internal ThreadedCollection into Core
Added ReaderWriterLockSlim extensions and ObjectLock extensions
Added DataGridRowIndexBehavior

4.00 8/2010
Added ObjectCloner
Added SelectedItemsCollectionSynchronizer

4.01 12/2010
Official build from changes
Added attached event support to EventCommander
Corrected issue with MessageMediator identifying interface targets from an implementation message
Added new constructor to ViewModel to avoid MEF registration for 3.5 memory leak issue (MEF)
Added Swap and Move extensions to IList collections

4.02 1/2011
Added option to defer collection change UNDO records into a group for global undo. BeginDefer/EndDefer on CollectionUndoObserver.

4.03 2/2011
Added flag to turn off CommandManager.RequerySuggested if VM wants to handle it directly.
Added lambda version of OnNotifyPropertyChanged per request
Unit tests for above.

4.04 3/2011
Changed MEF resolution code to allow custom catalogs to be used for resolving dependencies.
Added Range class for Parallel programming
Added ListView sorting behavior
Added 2 overrides for IUIVisualizer.Show and ShowDialog to pass object owner for explicit window ownership management (to be used by view, not VM).

4.05 4/2011
Added ExceptionExtensions
Added InDesigner property to ViewModel (just a copy of Designer.InDesignerMode)
Added MaskedTextBoxBehavior
Added new overrides for IMessageVisualizer to support icons, window owner, etc.

4.06 8/2011
Allow ExportUIVisualizer to be applied more than once.
Remove IViewModelTrigger and rewrote ViewModelTrigger behavior to target event by name.
Added MultiTreeSelect behavior
Modified MTObservableCollection to support suspension of events
Added ChangeCursorAction to behaviors

4.07 12/2011
Fixed ExportUIVisualizer (removed AllowMultiple as it broke certain resolutions with MEF).
Added StyleInteraction and test project into behaviors project
Added SelectTextAction, MessageBoxAction and AutoDisabledImageBehavior
Fixed a couple of spelling errors in comments.

4.08 2/2012
Enabled DeferredBinder to support 2-way bindings
Added test project for DeferredBinder
Added back in support for multiple ExportUIVisualizer and ExportViewModel attributes
Added test project for multiple export attributes
Removed IDynamicResolver interface, renamed MefComposer to DynamicComposer. You should just use DynamicComposer.Instance as the library is too dependent on MEF to really change the composition model.
Added ListViewColumnAutoSizeBehavior to provide Grid-like column sizing (Auto,*,##)
Added test project for ListViewColumnAutoSizeBehavior
Modified ListViewSortBehavior to correct crash when adorner layer is not present.
Fixed bug in ValidationManager when traversing properties and potentially getting into infinite loop
Added MouseGestureScrollViewerBehavior to support iPad-like gestures with mouse on ScrollViewer elements (with inertia)

4.09 3/2012
Added check in SynchronizedScrollingBehavior to disable scrolling if scrollbar is disabled.
Added ability to turn off drag adorner for ItemsControlDragDropBehavior
Added ServiceReplacement test project + unit tests from blog
Fixes for EditingViewModel, also extended with more interception hooks.

4.10 6/15/2012
Refactored some of the services to be more inline with the internal metro/Win8 version.
Merged .NET 3.5/4.0 set together

4.20 9/2012 (matches 1.04 of MvvmHelpers/Metro)
Several changes based on work done with MVVMHelpers/Metro.
Removed ExportService, just use Export and ServiceLocator will find it.
Renamed ServiceProvider to ServiceLocator.
Renamed IServiceProviderEx to IServiceLocator
Removed ViewModel.ServiceProvider - replaced with ServiceLocator.Instance
ServiceLocator is now exported only as IServiceLocator, not IServiceProviderEx
Removed EventCommander - use EventTrigger from Blend
Removed LifetimeEvents - use EventTrigger from Blend
MessageVisualizerOptions is now in JulMar.Windows.UI namespace (was in interfaces)
Changed InvokeCommand to pass parameter from trigger if no CommandParameter is data bound
BREAKING CHANGE: Services are no longer marked with InheritedExport, you must Export any services you want to override. This was done specifically so that you could implement service interfaces without replacing the built-in ones.
Added Windows 8/2012 constants to SystemInfo
Updated ViewModelTrigger to support Action and Action<T> delegates
ViewModelLocator is not public anymore - use IViewModelLocator
New ViewModelLocatorResource can be placed into resources to find VMs if you don't like ViewModelCreator
Added ServiceLocatorResource (from Win8/Metro)

4.21 6/2013
Bug fix for DoubleClickTrigger
Changed version to .NET 4.5

4.22 8/2013
Bug fix to allow "#" in path when loading julmar.wpf.helpers.dll
Updated .NET 3.5, 4.0 and 4.5 versions of library.

Reviews for this release

Really great job .... extends the MVVM Light Toolkit a litte bit :-)
by DotNetMastermind on Oct 25, 2012 at 3:43 PM