Downloads of v 6.0.0


Average downloads per day


Last published

Share on Social Networks

License details

provided by Sonatype




Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern.

The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of:

- WinForms


- Silverlight 5

- Silverlight for WP8, WP8.1

- Xamarin.Android

- Xamarin.iOS

- Xamarin.Forms

- WinRT XAML framework for Windows 8 Store apps

The MVVM framework includes the following features that differs this project from other ones:

- Deep integration with each platform.

- Supports state preservation and restoration for mobile platforms.

- Full Fragment support for Android, you do not need to worry about activity, fragments, sub-fragments or their state all this makes the framework.

- Solves the nested user controls problem in MVVM, all view models are dynamically created by you, using the GetViewModel method and you do not need to use the ViewModelLocator.

- Supports all kinds of navigation like modal window, page navigation, tab navigation, back stack fragment navigation for android. You can also easily add a new kind of navigation.

- Navigation system works with view models and allows to expect the completion of the operation. You can pass any parameters between view models.

- Good design mode support, for xaml platforms supports the creation of design view model with any constructor parameters.

- Supports bindings on all platforms, all of the native binding features available for WPF platform available on all platforms and even more.

- Binding supports C# language expressions like Linq, Extension methods, method call, ternary operator (?:), coalescing operator (??), etc.

- Supports subscription to any control event.

- Built-in support for validation.

- You can easily write their own extensions for bindings.

- Supports attached members (properties, events, methods), you can extend any object as you want.

- Special editor for WinForms, you do not need to write code to create bindings.

- Binding parser builds syntax tree that allows you to easily change or extend the bindings, without manipulation of the raw text.

- Binding supports fluent syntax.

- Excellent binding performance.

To install MugenMvvmToolkit, run the following command in the Package Manager Console

Install-Package MugenMVVMToolkit

Release Notes

      - Fixed 'Dynamic assemblies cannot be loaded'
      - Removed the setter from the IHasDisplayName.DisplayName property.
      - Removed the setter from the IHasOperationResult.OperationResult property.
      - Removed the EnsureNotDisposed method call in some methods.
      - Removed the IVisualStateManager interface.
      - Removed the validate state from the ITrackingCollection interface.
      - Removed ToolkitExtensions.LoadModules method.
      - Removed INavigationProviderEx interface
      - Removed the IViewModelSetting.Clone method.
      - Removed the IMvvmApplication.ViewModelSettings property.
      - Removed null-check from the IndexOf methods.
      - Removed ISerializer.AddKnownType and ISerializer.RemoveKnownType methods.
      - Removed the GridViewModel.OnSelectedItemPropertyChanged method.  
      - Changed the ShowView method implementation.
      - Changed the default implementation of the IStateTransitionManager interface.
      - Changed the IStateTransitionManager interface.
      - Changed the IOperationCallbackManager interface.
      - Changed the behavior of the DynamicMultiViewModelPresenter class if a view model is already opened instead of adding the view model is selected.
      - Changed the behavior of the DynamicViewModelWindowPresenter class if a view model is already opened instead of showing the view model is activated.
      - Changed the behavior of the DynamicViewModelNavigationPresenter class if a view model is already opened instead of showing the view model is brought to front.
      - Changed default module priority.
      - Changed design time support
      - Renamed the AuditAction enum to the ViewModelLifecycleType enum.
      - Moved the navigation constants from the NavigationProvider class to the NavigationProviderConstants class.
      - Moved the DefaultOperationCallbackFactory.ContinueOnCapturedContextConstant constant to the OpeartionCallbackConstants.ContinueOnCapturedContext constant.
      - Reduced name of the data members.
      - Completely rewritten the SynchronizedNotifiableCollection.
      - Completely rewritten the OrderedNotifiableCollection.
      - Completely rewritten the FilterableNotifiableCollection.  
      - Added an empty constructor for the serializable classes.     
      - Added the ViewModelConstants.Id constant that allows you to set the view model id manually.
      - Added the IOperationCallbackStateManager interface that allows to control the process of operation callback serialization.
      - Added the IViewModelProvider.GetCreatedViewModels method that returns the cached view models.
      - Added the IOperationCallbackManager.SetResult method that allows to set a result for all operations.
      - Added the ISerializer.IsSerializable method.
      - Added the IMvvmApplication.Start method.
      - Added the SerializableOperationCallbackFactory class for WPF, SL, WinForms platforms.
      - Added the support for the IReadOnlyCollection interface and the IReadOnlyList interface.
      - Added the ServiceProvider.ViewModelSettingsFactory delegate that allows to create an instance of the IViewModelSetting for the specified view model instead of IViewModelSetting.Clone method.
      - Added the RelayCommandBase.IgnoreProperties property.
      - Added the ViewMappingProvider.IsSupportedUriNavigation property.
      - Added the AsyncRelayCommand class as an alternative of the RelayCommandBase.FromAsyncHandler method.
      - Added the IBusyInfo interface that allows to control several busy messages.
      - Added the IViewModel.BusyInfo property.
      - Added MultiViewModel.CloseViewModelsOnClose property.
      - Added the IBootstrapCodeBuilder interface that allows to generate bootstrap code to reduce overhead of reflection and increase boot speed.
      - Added the INotifiableCollection.CollectionChangedUnsafe event.
      - Added InvalidateCommands, CanInvalidateCommands methods.
      - Added the IRelayCommand.IsExecuting property
      - Added parameter to control notification suspend for the AddRange method.
      - Updated the bootstrappers to work with the IMvvmApplication.Start method.
      - Updated the ExpressionReflectionManager class.

      - Fixed exception that can be throw when using the indexer path in some cases.
      - Fixed incorrect handling of the ILambdaExpressionNode expression.
      - Fixed incorrect interpolated strings check.
      - Fixed DataContext binding.
      - Removed support for private properties and fields.
      - Removed the IDataBinding.BindingException event, instead of it used the IDataBinding.BindingUpdated event.
      - Changed the $OneTime macros implementation.
      - Changed the implementation of the binding path factory.
      - Moved the BindingErrorProviderBase.ClearErrorsConstant property to the BindingConstants.ClearErrors property.
      - Reordered parameters in the IBindingParser.Parse method.
      - Added ability to debug binding using debug tag parameter.
      - Added the HasStablePath feature for binding, it improves the performance for bindig where the type of the path is not changed depending on the data context.
      - Added the Observable feature for binding, this value specifies whether the binding should observe the binding path.
      - Added optional binding feature, optional binding does not throw an error if the path is not available.
      - Added the BindingServiceProvider.BindingExceptionHandler property that allows to handle binding exceptions.
      - Added the check for the properties on the ability to read.
      - Added the IBindingSourceAccessor.DisableEqualityChecking property that allows to disable the property check for equality.
      - Added the $binding keyword macros.
      - Added the IBindingProvider.BuildFromLambdaExpression method and IBindingProvider.BuildParameterFromLambdaExpression method instead of LambdaExpressionToBindingExpressionConverter methods.
      - Added the DisableEqualityCheckingBehavior class.
      - Added the IDataContext parameter for CreateBuildersFromString and CreateBindingsFromString methods.
      - Added support for static $self, $this keywords.
      - Added the IBindingProvider.CreateBindingsFromStringWithBindings method
      - Updated the WeakEventManager class.
      - Updated enum converter.
      - Optimized memory usage for WeakEventManager.
      - Optimized the BindingMemberInfo class.

      - Fixed incorrect behavior of ViewPager.SelectedItem.
      - Fixed NRE on beta android releases.
      - Fixed nested fragment restoration.
      - Removed complex binding path support instead of Drawer.IsOpened use the DrawerIsOpened.
      - Removed the ItemsSourceRecyclerAdapter.ClearDataContext property.
      - Changed the GetOrCreateMediator method from internal to public.
      - Added the IMvvmActivityMediator.ActivityResult event.
      - Added the IMvvmFragmentMediator.IsDestroyed property.
      - Added fast TextView.Text property implementation using JNI.
      - Added the PlatformExtensions.TryDisposeView property.
      - Added the SelectedItem attached property for Spinner.
      - Added support for nested ViewPager with fragments.
      - Added fragmentManager.IsDestroyed check in FinishUpdate.
      - Added the AttachedMembers.AutoCompleteTextView.FilterText attached member
      - Increased performance of ItemsSourceRecyclerAdapter.
      - Optimized the cache strategy for weak references, reduced the memory usage.
      - Optimized layout inflater.
      - Improved startup time after app restoration.
      - Changed the AndroidBootstrapperBase.EnsureInitialized method.
      - Updated ToastPresenter and SnackbarToastPresenter.
      - Updated support libraries to

      - Fixed constraints format.
      - Removed UITableView.CellBind, UITableView.CellStyle attached properties breaking changes.
      - Removed ITableCellTemplateSelector.GetHeight method.
      - Changed the GetOrCreateMediator method from internal to public.
      - Added the ICollectionCellTemplateSelectorSupportDequeueReusableCell.
      - Added the ITableCellTemplateSelectorSupportDequeueReusableCell interface.
      - Added the DefaultTableCellTemplateSelector

      - Updated Xamarin.Forms to
      - Updated DataBindingExtension
      - Fixed 'Can not find a Property named 'Bind' or a static method named 'GetBind' for BindableProperty 'BindProperty''

      - Fixed a NullReferenceException when using the ContextMenuStrip with binding.



Vyacheslav Volkov



  • .NETFramework 4.0 Client

  • .NETFramework 4.5

    • No dependencies.
  • MonoAndroid 1.0

    • No dependencies.
  • Portable Class Library (.NETFramework 4.5, Silverlight 5.0, Windows 8.0, WindowsPhone 8.0)

  • Portable Class Library (.NETFramework 4.5, Windows 8.0, WindowsPhone 8.0, WindowsPhoneApp 8.1)

    • No dependencies.
  • Portable Class Library (.NETFramework 4.5, Windows 8.0, WindowsPhoneApp 8.1)

    • No dependencies.
  • Portable Class Library (.NETFramework 4.5.1, Windows 8.1)

    • No dependencies.
  • Portable Class Library (.NETFramework 4.5.1, Windows 8.1, WindowsPhoneApp 8.1)

    • No dependencies.
  • Portable Class Library (Windows 8.1, WindowsPhone 8.1, WindowsPhoneApp 8.1)

    • No dependencies.
  • Silverlight 5.0

  • UAP 0.0

    • No dependencies.
  • Windows 8.0

    • No dependencies.
  • Windows 8.1

    • No dependencies.
  • WindowsPhone 8.0

    • No dependencies.
  • WindowsPhone 8.1

    • No dependencies.
  • WindowsPhoneApp 8.1

    • No dependencies.
  • Xamarin.iOS 1.0

    • No dependencies.

Version History

Version Downloads Last updated
MugenMvvmToolkit 5.1.0 1,651 Saturday, November 21, 2015