Maison >développement back-end >C++ >Comment surmonter les défis de la coulée avec les génériques dans les applications WPF?
Le défi de la conversion génétique dans le type de type générique dans les applications WPF
Dans les applications WPF, la conversion entre les types génériques est parfois délicate. Une scène spéciale consiste à convertir les types
en type. Generic<派生类型>
Generic<基类型>
En supposant que vous avez une base WPF UserControl pour plusieurs dérivés userControl. Dans chaque code UserControl dérivé caché, le programme de traitement d'événements appelle la méthode dans userControl. Cependant, lorsque vous essayez de
dans l'utilisation de DataContext
lorsque vous essayez de convertir Generic<基类型>
dans la base de userControl. InvalidCastException
ou DataContext
, et que UserControl s'attend à ce qu'il soit une instance de BaseViewModel<线>
. BaseViewModel<连接器>
Generic<基类型>
Compréhension du concept de base
Malheureusement, ne peut pas être converti directement en
directement. Il s'agit d'une limite de base pour les systèmes génériques. Pour expliquer cela, supposons que vous puissiez exécuter une telle conversion.
Generic<派生类型>
Supposons que vous ayez un Generic<基类型>
, vous le convertissez en
à . Cependant, cela conduira à la logique incohérente, car List<狼>
inclura désormais un List<动物>
. List<动物>
羊
alternative List<狼>
羊
Implémentation d'interface publique:
Si vos types de dérivés implémentent une interface publique (par exemple,), vous pouvez convertir
en interface et accéder aux fonctions publiques de cette manière.IBaseViewModel
DataContext
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!