Heim >Backend-Entwicklung >C++ >Wie kann man in WPF allgemein an generisches Getränk werfen?

Wie kann man in WPF allgemein an generisches Getränk werfen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-28 18:41:09851Durchsuche

How to Safely Cast Generic to Generic in WPF?

Die Technik, Generika sicher in Generika in WPF

in Generika umzuwandeln In WPF ist es eine übliche Methode, um eine Basisbenutzerkontrolle zu erstellen, die abgeleitete Funktionen zur Freigabe von Benutzern bereitstellt. Um sicherzustellen, dass auf diese Funktion aus abgeleiteten Instanzen zugegriffen wird, wird das Ereignis normalerweise im versteckten Code aufgerufen, der der abgeleiteten Benutzersteuerung verborgen ist, z. B.

Die Handleclick -Methode der Basisbenutzerkontrolle kann jedoch bestimmte Parametertypen erfordern:
<code class="language-csharp">private void SomeClick(object sender, RoutedEventArgs e) {
    HandleClick(sender);
    MyDataGrid.Items.Refresh();
}</code>

Wenn der DataContext in der abgeleiteten Benutzersteuerung abgeleitet ist, z. B. BaseViewModel & lt; Dies liegt daran, dass DataContext nicht direkt in BaseViewModel & lt konvertiert werden kann.
<code class="language-csharp">public class BaseUserControl : UserControl {
    protected void HandleClick(object sender) {
        var vm = (BaseViewModel<零件>)DataContext;
        ...
    }
}</code>

Warum können wir generische & lt nicht konvertieren und GT;

Es ist verboten, generische & lt; Stellen Sie sich die Liste vor & lt; Sie können dann das Schafsobjekt zur Auflistung & lt; Alternativ

Um dieses Problem zu lösen, kann die folgende alternative Lösung berücksichtigt werden:

Verwenden von Schnittstellen anstelle von Generika, um den Vertrag zu definieren, den DataContext implementiert werden muss.

Verwenden einer kollaborativen oder Wechselrichteroberfläche, um nur die generischen Typen zu lesen.

    Vererbung durch Generika erben die selbstbasierte Klasse und realisiert ihre eigenen spezifischen Funktionen.

Das obige ist der detaillierte Inhalt vonWie kann man in WPF allgemein an generisches Getränk werfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn