WPFインターフェイス開発スキルの共有-カスタムDateEditを実装して値を自動的に修正する方法

DevExpress v20.1フルバージョンをダウンロードDevExpress v20.1 中国語リソース獲得 

DevExpress社のWPFコントロール、あなたは現代的な顧客のニーズに焦点を当て、強力なインタラクティブ機能を備えたXAMLベースのアプリケーションを作成することができますし、将来的にはタッチ対応ソリューションの新世代を構築します。

発生した問題

DateEditコントロールを使用する場合、コントロールはユーザーが入力した値を「自動修正」するため、ユーザーが2020-04-31と入力すると、2020-04-01を取得します。この場合、ユーザーは誤った日付を入力する可能性があり、ユーザーに通知するための警告なしに、誤った日付を実行し続けます。ユーザーに無効な日付を入力させ、エディターに検証エラーを表示させることをお勧めします。エディターはそのフォーマットを維持し、カーソルは元のDateEditコントロールと同じで、日付の一部から別の部分にジャンプする必要があります。唯一の違いは、フォーマットに対応する無効な日付を入力すると検証エラーが発生することですが、これはどのようにして実現できますか?

解決:

DateEditは、DateTimeタイプマスクを備えたテキストエディターであり、間違った日付を入力できないため、上記の動作が発生します。

目標を達成するために、マスクを使用してPopupBaseEditを作成できます。

<dxe:PopupBaseEdit Mask = "\ d {4}-\ d {2}-\ d {2}" 
MaskType = "RegEx" 
Validate = "DateEdit_Validate" ...> 
<dxe:PopupBaseEdit.PopupContentTemplate> 
... 
< /dxe:PopupBaseEdit.PopupContentTemplate> 
</ dxe:PopupBaseEdit>

 

PopupBaseEditをDateEditのようにするには、PopupContentTemplateプロパティを使用することをお勧めします。

PopupBaseEditポップアップウィンドウで使用されるDateEditCalendarはDateTimeタイプを使用し、PopupBaseEditのEditValueには文字列が含まれるため、この値をバインドする場合は、カスタムコンバーターを作成する必要があります。適切な日付形式をコンバータに渡す必要があることに注意してください。たとえば、ConverterParameterを使用してこの操作を実行できます。


DevExpress Technical Exchange Group 2:775869749グループディスカッションへようこそ

HuiduハイエンドUIインターフェイス開発

おすすめ

転載: blog.csdn.net/AABBbaby/article/details/107950082