界面控件DevExpress WPF v21.1最新版亮点放送:支持.NET Core & .NET 5

DevExpress WPF v21.1 正式版日前已发布,DevExpress图像库现在可用于 .NET Core 和 .NET 5、升级MVVM功能等,欢迎点击下载最新版体验!

.NET Core & .NET 5
XAML 设计器 – 建议操作

建议操作现在在Visual Studio Preview 版本中可用,并包括以下新功能:

  • 支持非可视元素(工具栏和功能区项目、数据网格列)
  • 支持嵌套元素(例如,GridControl 现在可以使用 TableView 选项)
  • 新属性编辑器
  • 外观标签

界面控件DevExpress WinForms v21.1最新版亮点放送
XAML 设计器 – 图像库

DevExpress图像库现在可用于 .NET Core 和 .NET 5,图像库包括数千个高质量的光栅和矢量图标 (SVG)。 可以通过Suggested Actions、Properties窗口和Visual Studio 的主菜单访问该库。

界面控件DevExpress WinForms v21.1最新版亮点放送
MVVM
编译时 ViewModel 生成

此功能使用 .NET 5 中引入的 C# 源代码生成器在编译时为您的 ViewModel 生成样板代码。 命令声明、属性更改通知、IDataErrorInfo 实现和服务支持将自动添加链接到ViewModel 的分部类。

C#

// manual partusing DevExpress.Mvvm.CodeGenerators;[GenerateViewModel]public partial class ViewModel {[GenerateProperty]int _Count;[GenerateCommand]public void Increment() => Count++;}// generated partpartial class ViewModel : INotifyPropertyChanged {public event PropertyChangedEventHandler PropertyChanged;protected void RaisePropertyChanged(PropertyChangedEventArgs e) => PropertyChangedInvoke(this, e);public int Count {get => _Count;set {if(EqualityComparer<int>.Default.Equals(_Count, value)) return;_Count = value;RaisePropertyChanged(CountChangedEventArgs);}}DelegateCommand incrementCommand;public DelegateCommand IncrementCommand {get => incrementCommand = new DelegateCommand(Increment, null, true);}static PropertyChangedEventArgs CountChangedEventArgs = new PropertyChangedEventArgs(nameof(Count));}

编译时代码生成共享与运行时生成的 POCO ViewModel 和标准 ViewModelBase 后代相关的好处:

  • ViewModel 没有重复的样板代码
  • 生成的代码存储在部分类中,您可以轻松查看和调试代码
  • ViewModel 类在设计时和运行时是相同的
  • 最佳运行时性能,因为类是提前生成的
EventToCommand – 事件参数返回转换

将事件参数传递给命令时,您可以定义反向转换逻辑并将值从命令返回到事件:

XAML

<dxe:TextEdit><dxmvvm:Interaction.Behaviors><dxmvvm:EventToCommand EventName="Validate"Command="{Binding ValidateCommand}"EventArgsConverter={local:ValidateEventArgsConverter} /></dxmvvm:Interaction.Behaviors></dxe:TextEdit>

C#

public class ValidateEventArgsConverter : EventArgsConverterBase<ValidationEventArgs> {protected override void ConvertBack(object sender, ValidationEventArgs args, object parameter) {if (parameter is ValidationInfo info && info.IsValid)args.SetError(info.ErrorContent, info.ErrorType);}...}

当事件需要返回值并且特定于 UI 的事件参数无法传递给 ViewModel 时,这应该会简化这种情况。 此类事件的示例包括验证、自定义排序、自定义显示文本等。


DevExpress技术交流群3:700924826      欢迎一起进群讨论

2021中国区首发 · DevExpress v21.1新版发布会报名开启,名额有限先到先得哦~

高端UI界面开发
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月6日
下一篇 2021年5月6日

相关推荐

发表回复

登录后才能评论