MugenMVVMToolkit 6.5.0
dotnet add package MugenMVVMToolkit --version 6.5.0
NuGet\Install-Package MugenMVVMToolkit -Version 6.5.0
<PackageReference Include="MugenMVVMToolkit" Version="6.5.0" />
paket add MugenMVVMToolkit --version 6.5.0
#r "nuget: MugenMVVMToolkit, 6.5.0"
// Install MugenMVVMToolkit as a Cake Addin #addin nuget:?package=MugenMVVMToolkit&version=6.5.0 // Install MugenMVVMToolkit as a Cake Tool #tool nuget:?package=MugenMVVMToolkit&version=6.5.0
Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern.
The Mugen MVVM Toolkit makes extensive use of Net Standard Library to provide maintainable cross platform C# native applications.
The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of:
- WinForms
- WPF
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Forms
- UWP
The MVVM framework includes the following features that differs this project from other frameworks:
- 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.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net40-client is compatible. net45 is compatible. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.0 Client
- Microsoft.Bcl (>= 1.1.10)
- Microsoft.Bcl.Build (>= 1.0.21)
-
.NETFramework 4.5
- No dependencies.
NuGet packages (8)
Showing the top 5 NuGet packages that depend on MugenMVVMToolkit:
Package | Downloads |
---|---|
MugenMvvmToolkit.Binding
This package contains the binding extensions. Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern. The Mugen MVVM Toolkit makes extensive use of Net Standard Library to provide maintainable cross platform C# native applications. The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of: - WinForms - WPF - Xamarin.Android - Xamarin.iOS - Xamarin.Forms - UWP The MVVM framework includes the following features that differs this project from other frameworks: - 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. |
|
MugenMvvmToolkit.WPF
This package contains the WPF assemblies. Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern. The Mugen MVVM Toolkit makes extensive use of Net Standard Library to provide maintainable cross platform C# native applications. The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of: - WinForms - WPF - Xamarin.Android - Xamarin.iOS - Xamarin.Forms - UWP The MVVM framework includes the following features that differs this project from other frameworks: - 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. |
|
MugenMvvmToolkit.AutofacContainer
Extension for Autofac providing integration with Mugen MVVM Toolkit. |
|
MugenMvvmToolkit.Xamarin.Forms
This package contains the assemblies for Xamarin.Forms. Mugen MVVM Toolkit makes it easier to develop cross-platform application using the Model-View-ViewModel design pattern. The Mugen MVVM Toolkit makes extensive use of Net Standard Library to provide maintainable cross platform C# native applications. The Mugen MVVM Toolkit provides a cross-platform MVVM development framework built on top of: - WinForms - WPF - Xamarin.Android - Xamarin.iOS - Xamarin.Forms - UWP The MVVM framework includes the following features that differs this project from other frameworks: - 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. |
|
MugenMvvmToolkit.NinjectContainer
Extension for Ninject providing integration with Mugen MVVM Toolkit. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Breaking changes:
Core
- migrated to .netstandard 1.0 pcl not supported.
- removed WinRT 8.0\8.1 support
- removed Silverlight support
- removed WinPhone Silverlight support
- removed WPF page navigation
- removed ModuleBase class use the IModule interface instead.
- removed INavigationOperation interface to get NavigationCompletedTask property use the ToolkitExtensions.GetNavigationCompletedTask() extension method.
- removed the ICloseableViewModel.Close method, now all viewmodels can be closed use the ViewModelExtensions.CloseAsync() extension method.
- renamed PlatformExtensions to AndroidToolkitExtensions
- renamed PlatformExtensions to TouchToolkitExtensions
- renamed PlatformExtensions to UwpToolkitExtensions
- renamed PlatformDataBindingExtensions to UwpDataBindingExtensions
- renamed PlatformExtensions to WinFormsToolkitExtensions
- renamed PlatformExtensions to WpfToolkitExtensions
- renamed XamarinFormsExtensions to XamarinFormsToolkitExtensions
- renamed INavigableViewModel.OnNavigatingFrom to INavigableViewModel.OnNavigatingFromAsync
- renamed IVisualTreeManager.FindParent method to GetParent
- replaced MultiViewModel with generic version MultiViewModel<TViewModel>.
- removed IHasOperationResult added the IHasResultViewModel interface
- removed IValidatorProvider.GetValidatorTypes method
- changed parameter type for CloseableViewModel.OnClosing, CloseableViewModel.OnClosed methods from object to IDataContext.
- changed IDynamicViewModelPresenter interface.
- changed the ShowAsync method now it returns result of IHasResultViewModel interface instead of bool value
iOS
- removed UICollectionViewCellBindable, removed support for Selected, Highlighted bindings
- removed UITableViewCellBindable, removed support for Selected, Highlighted, Editing bindings
Xam.Forms
- change project to .netstandard and add this line to project.json "frameworks": { "netstandard1.0": { "imports": "portable-net45+win8+wpa81+wp8" } }
- added MvvmXamarinApplicationBase instead of default App implementation you can use this class
- android project should pass app context to the PlatformBootstrapperService new PlatformBootstrapperService(() => Forms.Context)
- moved binding stuff to the MugenMvvmToolkit.Xamarin.Forms.Binding need to change namespace xmlns:mugen="clr-namespace:MugenMvvmToolkit.Xamarin.Forms.MarkupExtensions;assembly=MugenMvvmToolkit.Xamarin.Forms.Binding"
Nuget
- added MugenMvvmToolkit.Android project if you're using Android project you need to install this package
- added MugenMvvmToolkit.iOS project if you're using iOS project you need to install this package
- added MugenMvvmToolkit.UWP and MugenMvvmToolkit.UWP.Binding project if you're using UWP project you need to install this packages
- added MugenMvvmToolkit.WPF.Binding project if you're using WPF binding project you need to install this package
- added MugenMvvmToolkit.Xamarin.Forms project if you're using Xamarin.Forms binding project you need to install this package
- added MugenMvvmToolkit.Android.Preference package
Changes:
Core
- fixed serializer register type exception
- fixed incorrect behavior for ClearBackStack with BringToFront flag
- changed implementation of DynamicViewModelWindowPresenter
- changed implementation of IWindowViewMediator
- changed NavigationCompletedTask to Task<bool>
- changed IModuleContext.IocContainer to NotNull
- changed static properties ViewCreated, ViewInitialized, ViewCleared rom ViewManager to events
- linker optimizations
- updated MultiViewModel navigation
- updated autofac
- updated bootstrapper methods
- added LinkerSafeAttribute to core projects
- added INavigationDispatcher that allows to control view model navigation process
- added IMultiViewModel.ClearAsync method
- added ability to handle background\foreground app navigation
- added NavigationMode.Background, NavigationMode.Foreground
- added NavigationMode.Remove
- added NavigationConstants.NavigationParameter constant
- added ability to get opened view models using INavigationDispatcher.GetOpenedViewModels methods
- added ViewModelExtensions.GetCurrentView method
- added strong names
- added LinkerSafe attribute to all ioc containers
- added MvvmApplication.Modules property
- added ability to load modules without scanning assemblies
- added ext method GetTopViewModels
- added IAwaitableDynamicViewModelPresenter that allows to wait when current navigation operation will be completed
- added IViewModelPresenter.WaitCurrentNavigationsAsync method
- added overloads to the DelegateContinuation constructor and to the ContinueWith method
- added DoNotTrackViewModelFrom, DoNotTrackViewModelTo constants for NavigationDispatcher
- added PlatformInfo.Idiom property
- added Parameter property to navigation event args
- added IInitializableView interface
- added ICleanableView interface
- added IOpenedViewModelInfo for the INavigationDispatcher
- added IHasResultViewModel interface
- added ViewModelConstants.CanCloseHandler constant
- added ApplicationSettings.MessagePresenterGetButtonText property
- added non generic IMutliViewModel interface
- added ability to restore view model with custom constructor parameters using InitializationConstants.IocParameters constant
- replaced INavigationOperation interface to the IAsyncOperation interface
- removed INavigationOperation interface
- removed NavigationMode.Reset
- removed ITaskExceptionHandler
- removed INavigationCachePolicy
- removed MugenInjection added built-in MugenContainer
- removed object parameter from OnClosing\OnClosed methods
- removed context parameter from Start method for bootstrappers
- removed NavigationMode.Forward
- removed DesignBootstrapperBase
- removed the INavigationService.GetParameterFromArgs method
- removed AttachedValueProvider from core project
- renamed Platform property to PlatformInfo
- removed IViewAwareViewModel interface implementation from WorkspaceViewModel
- moved DynamicViewModelWindowPresenter to core project
- moved ViewManager.GetDataContext, ViewManager.SetDataContext methods to the ToolkitExtensions class
- moved static properties from ViewManager to ApplicationSettings
- optimized ViewModelBase\NotifyPropertyChangedBase cleanup
Binding
- binding optimizations
- optimized data context
- added code to detect circular dependencies for attached event members
- added the non-generic Member method to the BindingSyntaxEx class
- moved binding converter from core project to platform projects
- removed RelativeSourceExpressionNode usage from fluent bindings (linker optimizations)
- split binding modules to static AttachedMembersRegistration class (linker optimizations)
- updated binding builder methods
- added ability to register attached member for indexer(Item[]) path
Android
- added support for Xamarin.Android.Support.v7.Preference
- added ability to use android resources from binding using resource accessor $color.myXmlColor, $drawable.myDrawable
- added support for BottomNavigationView view
- added cache for MenuInflater
- added Invisible attached member
- added the Activity attached member to View class
- updated navigation for NoHistory activities
- removed XmlDocument and XDocument usage (linker optimizations)
- split preference usage (linker optimizations)
iOS
- added MvvmAppDelegateBase
- updated iOS navigation added ability to close root view controller
- updated state restoration
- fixed iOS aot bug System.ExecutionEngineExceptionAttempting to JIT compile method 'MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperation`1<bool>:AddContinuation<MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2<object, object>> (MugenMvvmToolkit.Infrastructure.Callbacks.AsyncOperationImpl`2<object, object>)' while running with --aot-only.
- fixed bring to front navigation bug
Xam.Forms
- added RestorableViewModelPresenter
- added MvvmXamarinApplicationBase
- added ignore state key to RestorableViewModelPresenter
- added native ViewModelToViewConverter converter
- removed PlatformDataBindingModuleEx
UWP
- added SuspensionManager and NavigationHelper
- added MvvmUwpApplicationBase
- fixed broken uwp weakreferences
WinForms
- added exception handler for wpf\winforms dialogs
- add Owner to WPF\WinForms IWindowView
- update design mode determination for WinForms