これは、Extended WPF ツールキットのバージョン 1.9.0 から 2.0.0 へのアップグレード後に、別の理由で遭遇した問題です。しばらく頭を悩ませていましたが、問題がコードにあるのか、それとも当時誰も考えていなかったものなのか、まだわかりません。
以前は、EditorDefinition の TargetType プロパティを使用して、いくつかの異なるデータ型に対して型ベースのカスタム エディターをセットアップする PropertyGrid スタイルを使用していました。これは明らかに 2.0.0 では機能しませんでした。これは、EditorDefinition が廃止されたためです。そのため、表示された警告メッセージに従って、EditorTemplateDefinition と TargetProperties を使用してスタイルを書き直しました。
https://gist.github.com/ceebrate/6695088
これが問題です。{arkane:Nullable} マークアップ拡張を使用する上位 2 つの EditorTemplateDefinitions をコメント アウトすると、残りのスタイル ({x:Type} マークアップ拡張を使用する 2 つの定義) が機能します。それらをそのままにしておくと、プロパティ グリッドを含むウィンドウが表示されるとすぐに、アプリケーションが XamlParseException でクラッシュし、System.RuntimeType を IList に変換できませんでした。
{arkane:Nullable} は、XAML で null 許容型を使用する機能を提供する TypeExtension の拡張機能であり、シンプルですがかなり標準的な (または少なくとも一般的に見られる) ものです。
https://gist.github.com/ceebrate/6695095
しかし、もっと重要なことは、これは TypeExtension の単純なサブクラスであり、EditorDefinition で TargetType に適用されたときに問題なく機能し、それ以来変更されていません。
どちらの側でも、変更のどの部分がこれを壊し、どのように修正するかについてのアイデアはありますか?
または、そのようなマークアップ拡張機能を使用せずに、Extended WPF Toolkit PropertyGrid のカスタム エディターを null 許容型に関連付ける方法はありますか?