2

この記事のように、ObjectDataSource でネストされた型を使用しようとしています。私にはうまくいかないようです。

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
4

2 に答える 2

2

これは、VS 2008 以降の既知の問題です。Microsoft の公式の立場は、これを行うべきではないというものです

あなたが書いている XAML は明らかに合法であり、実行時に機能し、Expression Blend に正しく読み込まれますが、現在のところ、マークアップ拡張機能から入れ子になったクラスの使用とアクセスがアプリケーション構築において非常に一般的であるとは考えていません。

于 2009-08-18T19:43:07.120 に答える
1

x:Type入れ子になった型への参照を回避する 1 つの方法は、新しいマークアップ拡張機能を定義して、x:Typeマークアップ拡張機能の代わりに使用することです。この回答Type2Extensionでは、クラスのソースなど、そのような情報を投稿しました。

は、のType2Extensionように設計者のエラーを生成しTypeExtensionません。おそらく、これは VS 2010 では発生しません。

唯一の注意点は、typenameTypeExtensionで使用するオリジナルの方が少し堅牢であることです(たとえば、引数が null であるかどうかをチェックして例外をスローする)。{x:Type }Type2Extension

于 2009-08-18T20:24:18.017 に答える