特定の種類のコントロールを追加のプロパティで拡張するエクステンダー (IExtenderProvider) があります。これらのプロパティの 1 つについて、UITypeEditor を作成しました。これまでのところ、すべて正常に動作しています。
エクステンダーには、UITypeEditor の一種のデフォルトとして使用しようとしているプロパティ自体もいくつかあります。私がしたいのは、(拡張コントロールではなく) エクステンダー自体にプロパティを設定できるようにすることです。拡張コントロールの追加プロパティの 1 つで UITypeEditor を開くと、 UITypeEditor をエクステンダーのプロパティの値に設定します。
簡単な例: ExtenderProvider にはプロパティ DefaultExtendedValue があります。フォームで、このプロパティの値を「My Value」に設定しました。拡張コントロールには、プロバイダーを通じて、UITypeEditor を持つプロパティ ExtendedValue があります。プロパティ ExtendedValue のエディターを開くと、デフォルト (初期) 値が「My Value」に設定されている必要があります。
これを行うのに最適な場所は、IWindowsFormsEditorService.DropDownControl または .ShowDialog を呼び出す直前の UITypeEditor.EditValue であると思われます。
唯一の問題は、問題のプロパティの値を読み取って UITypeEditor に設定するために、EditValue でエクステンダー プロバイダー自体を取得できない (または方法を発見していない) ことです。コンテキストによって拡張された制御が可能になりますが、この場合は役に立ちません。
私がしようとしていることを達成する方法はありますか? どんな助けでも大歓迎です!
ありがとうトム
@samjudson: それは悪い考えではありませんが、残念ながら、私はそこにたどり着きません. エクステンダー プロバイダーのインスタンスごとに、この既定値を個別に設定できるようにしたいと考えています。(拡張コントロールのグループごとに異なる値を持つ単一のフォームに複数ある場合があります。)