Skip to content

Latest commit

 

History

History
102 lines (79 loc) · 7.42 KB

README.md

File metadata and controls

102 lines (79 loc) · 7.42 KB

DevExpress.Mvvm.Free

DevExpress MVVM Framework is a set of components that simplify the implementation of the Model-View-ViewModel pattern in WPF.

Documentation

There are two versions of the DevExpress MVVM Framework:

  • The DevExpress.Mvvm version is included in the DevExpress WPF component suite and designed for use with the DevExpress WPF controls.
  • The DevExpress.Mvvm.Free version is designed for use with standard or third-party controls.

The DevExpress.Mvvm.Free version is a mirror of the DevExpress.Mvvm framework, so you can use the documentation for both versions.

Note that the free version of the framework is not compatible with the DevExpress WPF suite.

NuGet

The Free DevExpress MVVM Framework is available from NuGet.

Pull Requests

This repository mirrors the full version of the DevExpress MVVM framework included in DevExpress WPF installation packages. For this reason, we do not accept any pull requests to this repository. If you have an idea on how to improve our MVVM Framework, please contact us at our support center.

Release Notes

24.1.6

  • DevExpress MVVM Framework now supports .NET 8.0 and .Net Framework 4.6.2.

23.2.3

22.1.3

21.1.5

  • DevExpress MVVM Framework now includes the IEventArgsTwoWayConverter interface. This interface allows you to define back conversion logic and return values from a command to an event. Refer to the following topic for more information: EventToCommand.

20.2.3

  • T917390 - The IDelegateCommand and IAsyncCommand interfaces have been moved to the DevExpress.Mvvm namespace.

20.1.6

  • T831750 - The PropertyManager class has been removed.
  • T832854 - The IWindowService and ICurrentWindowService interfaces have been changed.
  • T906028 - Make the BindableBase.SetProperty method virtual.

19.2.3

  • DevExpress MVVM Framework now supports .NET Core 3.
  • T817657 - The IDispatcherService interface has been changed.

18.2.3

  • Async Commands Enhancements. Our POCO ViewModels and ViewModelBase descendants can now automatically generate Async Commands for methods marked with the async keyword. You can also reference your async method when invalidating an auto-generated Async Command.
[AsyncCommand(UseCommandManager = false)]
public async Task Calculate() {
    for(int i = 0; i <= 100; i++) {
        Progress = i;
        await Task.Delay(20);
    }
}
void UpdateCalculateCommand() {
    this.RaiseCanExecuteChanged(x => x.Calculate());
}
  • Dynamic Binding Converters - New API. The new DelegateConverterFactory class provides a set of functions to create IValueConverter and IMutliValueConverter instances based on passed delegates.

  • Both the BindableBase and ViewModelBase classes now offer a more simplified syntax for getters and setters:

public string FullName {
    get { return GetValue<string>(); }
    set { SetValue(value, OnFullNameChanged); }
}

string fullName;
public string FullName {
    get { return fullName; }
    set { SetValue(ref fullName, value, OnFullNameChanged); }
}
  • CompositeCommandBehavior - our new CanExecuteCondition property specifies whether the command target should be disabled when the CanExecute method of one of the commands returns true.

18.1.3

  • BC4250 - The DXBinding, DXEvent, and DXCommand extensions use a new expression evaluation engine by default. Expressions are now initialized up to 2 times faster. The new Expression Evaluation Engine includes the following features:
    • Dynamic Typing
    • No casting is required to compare or return values
    • Ability to create objects using the ‘new’ operator
    • Ability to assign values using the equals (=) operator in DXCommand and DXEvent

16.2.3

  • New Module Injection Framework (MIF). MIF makes it easier to develop, test, maintain, and deploy modular applications built with loosely coupled modules. The frameworks's key features include:
    • Automatic persistence of the application's logical state and layout.
    • Code separation into logical modules coupled with straightforward navigation.
    • Unit Testing.

16.1.4

15.2.5