1

ObjectModel.Collectionから派生したカスタムコレクションがあります。

COLタイプのプロパティで読み取りと書き込みが有効になっている場合に正常に機能する独自のコレクションエディタがあります。ただし、プロパティをReadOnlyに変更すると、[エディタを開く]ボタンがプロパティグリッドに表示されなくなります。

As a test, I override my custom editor with the CollectionEditor, and that worked fine.

So, my question is, what check is the property grid making, that CollectionEditor passes but my collection editor fails?

There's not much to override in UITypeEditor, so I fear there's some hard coding going on with regards to CollectionEditor.

Cheers.

ETA:

I've answered the question below.

4

2 に答える 2

0

なぜ表示されなかったのか、PropertyGridのバグのようです。EditStyleがModalに設定されている場合、ボタンは表示されますが、DropDownに設定されている場合は表示されません。

スタイルはただのスタイルだと思っていたでしょう...まあ、スタイル?

リフレクターを見ると、スタイルがモーダルに設定されている場合にのみ、読み取り専用プロパティの追加チェック(参照型かどうかのチェックやボタンの有効化など)が発生するため、この問題が発生します。うーん、いいね。

于 2010-02-20T09:44:12.610 に答える
0

あなた自身の回答で説明している動作はバグではなく、設計によるものだと思います。率直に言って、それは非常に論理的です。ドロップダウン エディターを見てみましょう。ドロップダウン エディターはユーザーに選択を提供するため、結果はプロパティの新しい値になります (ColorEditor、AnchorEditor、DockEditor、CursorEditor などを参照)。そのため、プロパティは読み取り専用であってはなりません。モーダル エディターは、値 (通常は参照型) を編集するためのものであるため、プロパティが読み取り専用の場合でも使用できます。もちろん、これを使用して新しい値を選択することもできます (たとえば、FileNameEditor など)。

おそらく答えは「UIデザインを見てください」です。ドロップダウン エディターを使用して参照型のコンテンツを編集する必要がありますか?

于 2010-02-20T12:38:23.877 に答える