0

整数を含むさまざまな値の型を持つプロパティ グリッドがあります。一部の int プロパティには、-1 などのデフォルト値を指定する DefaultValueAttribute があります。

ユーザーが空の文字列を入力すると、Visual Studio は「プロパティ値が無効です。'' を Int32 に変換できません」というメッセージを表示します。空の文字列をデフォルト値に戻すものとして解釈する方法はありますか?

カスタムの PropertyDescriptor が実装されていますが、VS がオブジェクトの値の型に変換したに SetValue() メソッドが呼び出されます。

4

1 に答える 1

1

の派生クラスを作成Int32Converterし、プロパティにアタッチします。そのメソッドをオーバーライドしてConvertFrom、必要な動作を挿入します。再利用可能にするために、PropertyDescriptor に設定された DefaultAttribute を使用するのが最適です。

どのように行われたかを確認したい場合は、Reflector ツールを使用してくださいBaseNumberConverter.ConvertFrom

于 2012-11-01T18:26:32.233 に答える