Maison > développement back-end > C++ > Comment lancer en toute sécurité générique à générique dans WPF?

Comment lancer en toute sécurité générique à générique dans WPF?

Mary-Kate Olsen
Libérer: 2025-01-28 18:41:09
original
824 Les gens l'ont consulté

How to Safely Cast Generic to Generic in WPF?

La technique de convertissement des génériques en génériques en toute sécurité dans WPF

Dans WPF, il s'agit d'une méthode courante pour créer un contrôle utilisateur de base qui fournit des fonctions de partage de contrôle utilisateur dérivées. Afin de s'assurer que cette fonction est accessible à partir des instances dérivées, l'événement est généralement appelé dans le code caché caché du contrôle utilisateur dérivé, par exemple:

Cependant, la méthode de la main du contrôle de la base de la base peut nécessiter des types de paramètres spécifiques:
<code class="language-csharp">private void SomeClick(object sender, RoutedEventArgs e) {
    HandleClick(sender);
    MyDataGrid.Items.Refresh();
}</code>
Copier après la connexion

Si le DataConText dans le contrôle utilisateur dérivé est dérivé, tel que BaseViewModel & lt; En effet, DataConText ne peut pas être directement converti en BaseViewModel & lt;
<code class="language-csharp">public class BaseUserControl : UserControl {
    protected void HandleClick(object sender) {
        var vm = (BaseViewModel<零件>)DataContext;
        ...
    }
}</code>
Copier après la connexion

Pourquoi ne pouvons-nous pas convertir générique & lt;

Il est interdit de convertir générique & lt; Imaginez, convertit List & lt; Vous pouvez ensuite ajouter l'objet de mouton à la liste & lt; alternative

Afin de résoudre ce problème, la solution alternative suivante peut être prise en compte:

Utilisation d'interfaces au lieu de génériques pour définir le contrat que DataconText doit être implémenté.

en utilisant une interface collaborative ou onduleur pour lire de force uniquement les types génériques.

    L'héritage à travers les génériques, hériter de la classe auto-basée et réaliser ses propres fonctions spécifiques.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal