zoukankan      html  css  js  c++  java
  • 2021 WPF应用开发有哪些新变化?这个工具的最新功能值得了解

    DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。

    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 part
    using DevExpress.Mvvm.CodeGenerators;
    
    [GenerateViewModel]
    public partial class ViewModel {
    [GenerateProperty]
    int _Count;
    
    [GenerateCommand]
    public void Increment() => Count++;
    }
    
    // generated part
    partial class ViewModel : INotifyPropertyChanged {
    public event PropertyChangedEventHandler PropertyChanged;
    protected void RaisePropertyChanged(PropertyChangedEventArgs e) => PropertyChanged?.Invoke(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      欢迎一起进群讨论

  • 相关阅读:
    开放个人电脑端口[Windows]
    mysql局域网服务搭建
    JS数据分组[JSON]
    网站缓存【我只是单纯的保存网站!】
    JS生成数字加减乘法验证码
    【http反向代理】多个域名指向同一个ip的不同网站解决方法
    JQuery获取ID含有特殊字符的DOM元素
    java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap
    大型网站技术架构,6网站的伸缩性架构之分布式缓存集群的伸缩性设计
    大型网站技术架构,6网站的伸缩性架构之应用服务器集群的伸缩性设计
  • 原文地址:https://www.cnblogs.com/AABBbaby/p/14869922.html
Copyright © 2011-2022 走看看