彩票走势图

界面控件DevExpress WPF 视图模型生成器 - 支持Prism & MVVM Light

翻译|行业资讯|编辑:龚雪|2022-05-12 10:19:02.737|阅读 142 次

概述:本文主要介绍DevExpress WPF的视图模型生成器是如何支持Prism & MVVM Light的,欢迎下载最新版体验!

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

复杂视图中的视图模型包含许多属性、命令和重复的接口实现,为所有这些成员编写代码不仅低效,而且可能会导致拼写错误等。幸运的是,代码编写不断发展,新技术可以让您节省时间,保持代码库紧凑、干净和可读。编译时生成器就是这样一种技术,生成器在您输入代码时无缝工作,甚至无需构建项目或执行任何操作即可生成代码。

DevExpress WPF v21.2正式版下载

DevExpress WPF的MVVM 代码生成器自动创建基于方法的命令、基于字段的属性,并实现 INotifyPropertyChanged、INotifyPropertyChanging、IDataErrorInfo、ISupportServices 和 ISupportParentViewModel 等接口。对于使用 DevExpress MVVM 框架的用户来说,这是一个很好的补充。尽管如此,我们的组件也与其他 MVVM 框架兼容,如果您使用的是 Prism 或 MVVM Light,仍然可以使用我们的代码生成器。

Prism代码生成器

Prism View Model代码生成器可帮助您使用所有基本视图模型功能:命令、属性和通知,它使用 Prism 的 DelegateCommand 类来生成命令。 除此之外,生成器可以自动实现 Prism 的 IActiveAware 接口,将 GenerateViewModel 分配给您的模型类并将 ImplementIActiveAware 设置为 true 就足够了:

Base View Model

[GenerateViewModel(ImplementIActiveAware = true)]
partial class ViewModel {
// ...
void OnIsActiveChanged() {
// ...
}
}

Generated View Model

partial class ViewModel : INotifyPropertyChanged, IActiveAware {
// ...
bool isActive;
public bool IsActive {
get => isActive;
set {
isActive = value;
OnIsActiveChanged();
IsActiveChanged?.Invoke(this, EventArgs.Empty);
}
}
public event EventHandler? IsActiveChanged;
// ...
}

您需要声明 DevExpress.Mvvm.CodeGenerators.Prism 命名空间才能使用 Prism 代码生成器。

MVVM Light代码生成器

除了标准的视图模型功能,MVVM 生成器可以自动创建一个 Messenger 并实现 ICleanup 接口:

Base View Model

[GenerateViewModel(ImplementICleanup = true)]
partial class ViewModel {
// ...
void OnCleanup() {
// ...
}
}

Generated View Model

partial class ViewModel : INotifyPropertyChanged, ICleanup {
// ...
protected IMessenger MessengerInstance { get; set; } = Messenger.Default;
public virtual void Cleanup() {
MessengerInstance.Unregister(this);
OnCleanup();
}
// ...
}

声明 DevExpress.Mvvm.CodeGenerators.MvvmLight 命名空间来将 View Model Generator 与 MVVM Light 一起使用。

DevExpress WPF | 下载试用

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。


DevExpress技术交流群6:600715373      欢迎一起进群讨论

DevExpress企业定制服务

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP