ObjectDataproviderマークアップの参照ネストタイプ
-
18-09-2019 - |
質問
私は私の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
(たとえば、引数が無効であるかどうかを確認し、例外をスローします)。
所属していません StackOverflow