Rating:        Based on 2 ratings
Reviewed:  1 review
Downloads: 228
Change Set: c2e1a3626908
Released: Sep 13, 2011
Updated: Sep 13, 2011 by GeertvanHorrik
Dev status: Stable Help Icon

Recommended Download

Application Catel 2.1 - libraries
application, 2830K, uploaded Sep 13, 2011 - 127 downloads

Other Available Downloads

Source Code Catel 2.1 - source
source code, 5879K, uploaded Sep 13, 2011 - 53 downloads
Documentation Catel 2.1 - code snippets
documentation, 8K, uploaded Sep 13, 2011 - 48 downloads

Release Notes

Catel history

(+) Added
(*) Changed
(-) Removed
(x) Error / bug (fix)

For more information about issues or new feature requests, please visit:


Version 2.1

Release date:

(+) Added FrameworkElementExtensions.FixUILanguageBug() to fix the Silverlight UI language bug (for example, the dollar sign is used by SL instead of the euro sign in euro countries, this fix solves that)
(+) Added support for MEF in the ServiceLocator
(+) Added support for INotifyDataErrorInfo for models in the ViewModelBase
(+) Added InitializeViewModel() to IViewModel that is called as soon as an associated UI element (usercontrol, window, ...) is loaded. This way, it is possible to delay the retrieval of data until the element is actually loaded. Override Initialize() on the ViewModelBase to use this behavior
(+) Added extension method ObservableCollection.ReplaceRange() which clears the collection and adds the specified range to the collection again
(+) Added IUIVisualizerService.NamingConventions so multiple naming conventions are available
(+) Added ExpressionHelper to keep the parsing of Expression objects (for example, for property names) in a single place
(+) UpdatedBindingOnTextChanged behavior now supports a delay so the command will not immediately be executed after every text change event, but only when no new text change event occurs for the specified delay
(+) Properties decorated with the Model attribute and of type Entity (EF) are now automatically validated in front so the errors are known/visible immediately
(+) Extended Argument class with IsOfType and IsNotOfType method and an overload for the ImplementsInterface method which accepts an instance to check
(+) Added ObservableObject, which extracts some logic out of the immensive DataObjectBase and makes it easy to implement lightweight objects that support INotifyPropertyChanging and INotifyPropertyChanged
(+) Added Enum<TEnum>.ConvertFromOtherEnumValue to easily translate equal enum values from different enum types
(+) Added PhoneApplicationPageBehavior in addition to all other MVVM behaviors
(+) Added CameraService for Windows Phone 7 Mango
(+) Added interfaces to UserControl<TViewModel>, DataWindow<TViewModel> and Page<TViewModel> so it is now very easy to cast generic controls to an interface to change properties
(+) UserControl<TViewModel> and DataWindow<TViewModel> now have an OnViewModelChanged method to save a developer to subscribe/unsubscribe on the same user control or window
(*) IUIVisualizerService.NamingConvention is now marked obsolete (use NamingConventions instead)
(*) Additional instances of IExternalContainerHelper classes can now be added to the ServiceLocator so it is easy to extend the supported external IoC containers at runtime
(*) INotifyDataErrorInfo implementation in the DataObjectBase now returns all business rule errors when string.Empty or null is passed in the GetErrors method
(*) Designer class which initialized the design time view model is marked obsolete, it is recommended to use the d:DataContext instead
(*) PleaseWaitWindow now dimms all the windows instead of only the owner. This in case multiple non-dialog windows are shown. To disable this new behavior, simply set the property PleaseWaitWindow.OnlyDimmOwnerWindow to true
(*) IPleaseWaitService implementation for Silverlight now always centers the busy indicator correctly and sets the IsHitTestVisible to false when the busy indicator is visible
(*) Behaviors and triggers are improved so that they work even when the associated object is unloaded and loaded several times for the same instance
(*) ViewModelBase.OnNavigationCompleted is only invoked when there is a NavigationContext (previously, the method was called twice)

AND MUCH MORE! Full release notes are available inside the download packages.

Reviews for this release

A great framework packed with nice features. Wonderful job and it keeps getting better.
by hyp on Sep 15, 2011 at 12:12 PM