2017-07-07 6 views
2

ネストされたコレクションプロパティがある場合、XCeed WPFプロパティグリッドコントロールで例外が発生します。その振る舞いはよく定義され、再現可能ですが、非常に奇妙です。ここでWPF PropertyGridが異常なNullReferenceExceptionをスローするメンバがnullでない場合のみ

は、例えば、クラス構造です:

Public Class MyTestBigClass 
    Public Property FirstProperty As New List(Of MyTestLittleClass) 
End Class 

Public Class MyTestLittleClass 
    Public Property SecondProperty As New List(Of Integer) 
End Class 

私は新しいMyTestBigClassを作成して、PropertyGridのにバインドします。そのフォームに移動し、FirstProperty行をクリックすると、Collection Editorダイアログがポップアップします。私は「追加」を数回押してコレクションのメンバーをいくつか作成しました。次に、ダイアログを閉じます。これまでのところうまくいき、FirstPropertyの予想される変更が実際に発生することを確認できます。

次に、FirstProperty行をもう一度クリックする以外は何もしません。コレクションエディタの代わりに、コレクションに追加したメンバーを表示する代わりに、NullReferenceExceptionが発生します。

ここは奇妙な部分です。

私が代わりにこれを言うために最後から2番目の行を変更した場合、例外が発生しません:

Public Property SecondProperty As List(Of Integer) 

このコントロールにとNullReferenceExceptionを取り除く、と私はうまくバインドPropertyGridのを使用することができますされます。 SecondPropertyはほとんどの場合null(VBでの別名Nothing)なので、これはコード内の別の場所での問題を犠牲にしています。

さらに悪いことに、SecondProperty をどこでもに初期化すると、同じ例外が戻ってきます。私がコンストラクタ(VBの新しいサブ)を作成し、その内部にオブジェクトを作成しても、何らかの理由でそのメンバをnull以外にすると、プロパティグリッド自体がクラッシュします。

何が起こっていますか?これはコントロールコードのエラーですか、それとも間違っていますか?それを修正する正しい方法は何ですか?

答えて

0

このバグは、Xceed PropertyGridコントロールの内側にあります。 2014年6月5日にリリースされた有料版で修正されました。バージョン3.4.17280.14430のリリースノートの一部は次のようになります。

PropertyGridでは、CollectionControlエディタを開くと、CollectionのアイテムにListプロパティが含まれているとクラッシュしなくなりました。

関連する問題