翻譯|行業(yè)資訊|編輯:龔雪|2022-05-12 10:19:02.737|閱讀 215 次
概述:本文主要介紹DevExpress WPF的視圖模型生成器是如何支持Prism & MVVM Light的,歡迎下載最新版體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
復(fù)雜視圖中的視圖模型包含許多屬性、命令和重復(fù)的接口實(shí)現(xiàn),為所有這些成員編寫代碼不僅低效,而且可能會(huì)導(dǎo)致拼寫錯(cuò)誤等。幸運(yùn)的是,代碼編寫不斷發(fā)展,新技術(shù)可以讓您節(jié)省時(shí)間,保持代碼庫緊湊、干凈和可讀。編譯時(shí)生成器就是這樣一種技術(shù),生成器在您輸入代碼時(shí)無縫工作,甚至無需構(gòu)建項(xiàng)目或執(zhí)行任何操作即可生成代碼。
DevExpress WPF的MVVM 代碼生成器自動(dòng)創(chuàng)建基于方法的命令、基于字段的屬性,并實(shí)現(xiàn) INotifyPropertyChanged、INotifyPropertyChanging、IDataErrorInfo、ISupportServices 和 ISupportParentViewModel 等接口。對于使用 DevExpress MVVM 框架的用戶來說,這是一個(gè)很好的補(bǔ)充。盡管如此,我們的組件也與其他 MVVM 框架兼容,如果您使用的是 Prism 或 MVVM Light,仍然可以使用我們的代碼生成器。
Prism View Model代碼生成器可幫助您使用所有基本視圖模型功能:命令、屬性和通知,它使用 Prism 的 DelegateCommand 類來生成命令。 除此之外,生成器可以自動(dòng)實(shí)現(xiàn) Prism 的 IActiveAware 接口,將 GenerateViewModel 分配給您的模型類并將 ImplementIActiveAware 設(shè)置為 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 代碼生成器。
除了標(biāo)準(zhǔn)的視圖模型功能,MVVM 生成器可以自動(dòng)創(chuàng)建一個(gè) Messenger 并實(shí)現(xiàn) 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擁有120+個(gè)控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序。通過DevExpress WPF能創(chuàng)建有著強(qiáng)大互動(dòng)功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產(chǎn)品,還是以數(shù)據(jù)為中心的商業(yè)智能產(chǎn)品,都能通過DevExpress WPF控件來實(shí)現(xiàn)。
DevExpress技術(shù)交流群6:600715373 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)