【发布时间】:2011-09-22 08:13:28
【问题描述】:
我有一堆 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
Workspaces 是 VMBase 的 ObservableCollection。
ShowQnnn 过程用于显示 ViewModel。关键是,只有当其中一个类型不存在时,才会将新的 QnnnViewModel 添加到工作区集合中。
有没有办法将 ShowQnnn 程序变成一个通用版本?
【问题讨论】: