wpf usercontrol遺伝的変換:派生ジェネリックからベースクラスのジェネリックへの変換の問題
WPFでは、複数のuserControlが同じ機能を共有する場合、基本クラスのusercontrolが定義され、派生したusercontrolのコードの隠されたコードでインシデントが処理されます。ただし、場合によっては、基本クラスのusercontrolでデータコンテキストを遺伝的タイプに変換しようとする場合、
例外が発生する可能性があります。
InvalidCastException
異常な外観は、datAcontextのタイプが派生型(
など)であるためです。そして、それをベースタイプ(BaseViewModel<wire>
)に変換しようとします。これは、をBaseViewModel<connector>
に変換できないためです。 BaseViewModel
Generic<派生类型>
概念的な観点では、これはGeneric<基类型>
を
に追加できますが、これによりList<wolf>
の完全性が破壊され、矛盾が生じる可能性があります。 List<animal>
List<animal>
唯一の例外は、インターフェイスやコラボレーションやインバーターの使用などの概念を使用することですが、これはクラスではなく、インターフェイスにのみ適用できます。したがって、あなたのシーンでは、List<wolf>
を
Generic<派生类型>
以上がWPF usercontrolsでジェネリックにジェネリックをキャストできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。