原創(chuàng)|產(chǎn)品更新|編輯:龔雪|2021-06-09 10:52:46.910|閱讀 246 次
概述:DevExpress WPF v21.1 正式版日前已發(fā)布,DevExpress圖像庫(kù)現(xiàn)在可用于 .NET Core 和 .NET 5、升級(jí)MVVM功能等,歡迎點(diǎn)擊下載新版體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
DevExpress WPF擁有120+個(gè)控件和庫(kù),將幫助您交付滿足甚至超出企業(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)建未來新一代支持觸摸的解決方案。
DevExpress WPF v21.1 正式版日前已發(fā)布,DevExpress圖像庫(kù)現(xiàn)在可用于 .NET Core 和 .NET 5、升級(jí)MVVM功能等,歡迎點(diǎn)擊下載新版體驗(yàn)!
建議操作現(xiàn)在在Visual Studio Preview 版本中可用,并包括以下新功能:
DevExpress圖像庫(kù)現(xiàn)在可用于 .NET Core 和 .NET 5,圖像庫(kù)包括數(shù)千個(gè)高質(zhì)量的光柵和矢量圖標(biāo) (SVG)。 可以通過Suggested Actions、Properties窗口和Visual Studio 的主菜單訪問該庫(kù)。
此功能使用 .NET 5 中引入的 C# 源代碼生成器在編譯時(shí)為您的 ViewModel 生成樣板代碼。 命令聲明、屬性更改通知、IDataErrorInfo 實(shí)現(xiàn)和服務(wù)支持將自動(dòng)添加鏈接到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)); }
編譯時(shí)代碼生成共享與運(yùn)行時(shí)生成的 POCO ViewModel 和標(biāo)準(zhǔn) ViewModelBase 后代相關(guān)的好處:
將事件參數(shù)傳遞給命令時(shí),您可以定義反向轉(zhuǎn)換邏輯并將值從命令返回到事件:
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); } ... }
當(dāng)事件需要返回值并且特定于 UI 的事件參數(shù)無法傳遞給 ViewModel 時(shí),這應(yīng)該會(huì)簡(jiǎn)化這種情況。 此類事件的示例包括驗(yàn)證、自定義排序、自定義顯示文本等。
DevExpress技術(shù)交流群3:700924826 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)