2017-01-04 1 views
0

Ich habe diese korrekte Arbeitsweise:Umgestalten Verfahren in eine generische Methode

Public Shared Function Create(panelName As String, panelCaption As String) As ViewModelA 
    Return ViewModelSource.Create(Function() New ViewModelA() With { 
     .Name = panelName, 
     .Caption = panelCaption 
    }) 
End Function 

, die erzeugt und gibt ein Objekt vom Typ ViewModelA mit seinen Eigenschaften Namen und Bildunterschrift.

(Anmerkung: ViewModelSource.Create ist ein Verfahren zur Herstellung eines 3D-Partei MVVM-Framework, das eine Instanz der gegebenen POCO-Klasse gibt (hier: ViewModelA)).

Diese Methode wird von einigen ViewModels benötigt und jedes ViewModel hat seine eigene Methode. Diese Methode unterscheidet sich nur im Typ (ViewModelA, ViewModelB, ViewModelC ...).

Was ich achive wollen, ist nur eine einzige generische Methode, die ein Objekt des Typs als Parameter angegeben gibt - wie die folgenden Fantasie Code:

Public Shared Function Create(Of T)(panelName As String, panelCaption As String) As T 
    Return ViewModelSource.Create(Function() New T With { 
     .Name = panelName, 
     .Caption = panelCaption 
    }) 
End Function 

und unter Verwendung des Verfahrens wie folgt aus:

Dim vmA As ViewModelA = Create(Of ViewModelA)("myName", "myCaption") 
+0

Warum brauchen Sie 'Create' Methode? Sie kennen den Typ 'ViewModelA' und die erforderlichen Werte - so können Sie' new ViewModel A Mit {.Name = "name", .Caption = "caption"} verwenden. – Fabio

+0

Es ist eine Notwendigkeit des MVVM Framework (DevExpress MVVM) Erstellen Sie die ViewModels mit der ViewModelSource.Create-Methode, um die Vorteile dieses Frameworks zu nutzen. –

Antwort

Verwandte Themen