質問

私は私のobjectdatasourceでネストされたタイプを使用しようとしています これ 論文。それは私のために働いていないようです。

<ObjectDataProvider x:Key="myProvider" ObjectType="{x:Type local:OutsideClass+InsideClass}" MethodName="GetObjects" />
役に立ちましたか?

解決

これは、VS 2008以降で既知の問題です。 マイクロソフトの公式の立場は、あなたがこれをするべきではないということです:

あなたが書いているXAMLは明らかに合法であり、実行時に機能し、式ブレンドに正しく負荷をかけますが、現在、マークアップ拡張機能からネストされたクラスの使用とアクセスがアプリケーションの構築で非常に一般的であるとは考えていません。

他のヒント

回避する1つの方法 x:Type ネストされたタイプへの参照は、新しいマークアップ拡張機能を定義し、の代わりに使用することです。 x:Type マークアップエクステンション。そのような情報源を含むそのような情報を投稿しました Type2Extension クラス、in この答え.

Type2Extension のようなデザイナーエラーは発生しません TypeExtension します。 おそらく、これは2010年VSでは発生しません。

唯一の警告は、オリジナルです TypeExtension で使用します {x:Type TypeName} もう少し堅牢です Type2Extension (たとえば、引数が無効であるかどうかを確認し、例外をスローします)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top