Laden...

Warum wird Konstruktor von gehostetem WinForms-Control ständig aufgerufen?

Erstellt von wackelkontakt vor 12 Jahren Letzter Beitrag vor 12 Jahren 649 Views
wackelkontakt Themenstarter:in
109 Beiträge seit 2011
vor 12 Jahren
Warum wird Konstruktor von gehostetem WinForms-Control ständig aufgerufen?

Hallo,

ich möchte mittels WindowsFormsHost in einem Wpf-View ein 'eigenes' WinForms-UserControl benutzen:

        <WindowsFormsHost>
            <Application:LoggingGrid/>
        </WindowsFormsHost>

Funktioniert auch so weit jedoch habe ich das Problem das der Konstruktor der WinForms-Klasse LoggingGrid ständig aufgerufen wird.
Zur Erklärung: ich verwende MVVM und das Control wird in einer Workspace-View verwendet. Immer wenn ich den Workspace wechsle wird das Objekt neu erzeugt. Kann mir jemand sagen wie ich das umgehen kann? Ich möchte (ähnlich dem Workspace-ViewModel) dieses Control während der Laufzeit einmal erzeugen und benutzen können.

Ich hoffe ich habe das Problem nicht allzu umständlich dargestellt.

Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....

D
500 Beiträge seit 2007
vor 12 Jahren

Moin!

Fehlt Dir eventuell das Namensattribut hier, damit das LoggingGrid identifiziert werden kann und nicht jedes Mal neu erzeugt wird?

Gruss,
Moe

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo wackelkontakt,

Immer wenn ich den Workspace wechsle wird das Objekt neu erzeugt.

Mit Workspace wechseln meinst du, dass ein anderen Workspace in der GUI sichtbar wird? Dann ist das bei allen Controls so, nicht nur beim Winforms-Host. Sie werden nicht gerendert -> also weg damit. Sollen sie wieder gerendert werden, so werden sie wieder erstellt. Das geht von der Rendering-Pipeline aus.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"