winformsのIDataErrorInfo
-
05-07-2019 - |
質問
WinDataアプリケーションでIDataError情報を適切に使用できますか?過去に私は通常の方法でバインディングを行っていました(1)、特定のコントロールのOnValidatingイベントで検証を行いました。データ検証をドメインモデルに移動して、ユーザーインターフェイスを簡単に交換できるようにし、すべてのロジックを1か所にまとめたいと考えています。
IDataErrorInfoを調査していましたが、WPFと開発中のアプリはすべて厳密にwinformsアプリです。
また、WPFで使用されるバインディングがSystem.Windows.Dataにあり、常に使用しているバインディングがSystem.Windows.Formsにあることに気付きましたリソースとして追加するには-3.5)を使用しています。プロパティ「ValidatesOnDataErrors」は別として、 2つの間に違いはありますか?
(1)通常の方法:
myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
解決
これは、 ErrorProvider で機能します。 Windowsフォームのコンポーネント。
完全ではあるが非常にシンプルで短いチュートリアルについては、このブログ投稿。
他のヒント
はい、 IDataErrorInfo
はwinformsで機能します。たとえば、 DataGridView
は、これを行ごとおよびセルごとに自動的に使用します。ただし、実装固有のものであり、他のバインディングに自動的に適用されることはありません 。エラープロバイダーに関連付けて変更イベントを介して作業を行うためのコードを一度書いたことがありますが、残念ながら手渡すことはできません。しかし、私はそれが大きくなかったことを思い出すようです。
所属していません StackOverflow