У меня есть несколько классов ViewModel, Q001ViewModel, Q002ViewModel, ..., QnnnViewModel. Все они наследуются от VMBase.
У меня также есть набор Subs ShowQnnn, ShowQnnn, ..., ShowQnnn. Пример:
Private Sub ShowQ001()
Dim workspace As Q001ViewModel = _
CType(Me.Workspaces.FirstOrDefault(Function(vm) vm.GetType() Is GetType(Q001ViewModel)), Q001ViewModel)
If workspace Is Nothing Then
workspace = New Q001ViewModel(_dbc)
Me.Workspaces.Add(workspace)
End If
Me.SetActiveWorkspace(workspace)
End Sub
Рабочие пространства - это наблюдаемая коллекция VMBase.
Процедуры ShowQnnn используются для отображения ViewModel. Дело в том, что новый QnnnViewModel будет добавлен в коллекцию рабочих пространств, только если один из этого типа еще не существует.
Есть ли способ превратить процедуры ShowQnnn в одну универсальную версию?