我有一个抽象基类aComponent
和亚类CriteriaList
,Question
等负载WPF用户控件动态
对于每个子类两个对应UserControl
S的具有名称等,ubCriteriaList
,ueQuestion
,ubQuestion
我有等。(ue
代表短为“UserControl
与输入元件”,并为ub
“UserControl
带有按钮”。)
DataContext
的是“ControllerClass”与一个属性作为实际aComponent
实例的获取者。当aComponent
实例更改(例如CriteriaList
的实例)时,我想加载相应的UserControl(在本例中为ueCriteriaList和ubCriteriaList)。
我有两个转换器和ueControlConverter
ubControlConverter
内搭类名称(例如CriteriaList
),并返回一个UserControl
实例(在此情况下,)。
Public Class ueControlConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object,
culture As System.Globalization.CultureInfo) As Object
Implements IValueConverter.Convert
Dim aComp As aComponent = value
Dim assemblyKlassenname As String = aComp.GetType.ToString
Dim assemblyName As String = Left(assemblyKlassenname,
assemblyKlassenname.IndexOf(".") + 1)
Dim klassenName As String = Right(assemblyKlassenname,
assemblyKlassenname.IndexOf(".") - 1)
Dim t As Type = Type.GetType(assemblyName & "ue" & klassenName)
Dim o As UserControl = Activator.CreateInstance(t)
o.DataContext = value
Return o
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object,
culture As System.Globalization.CultureInfo) As Object
Implements IValueConverter.ConvertBack
Return value
End Function
End Class
在XAML我有结合Content="{Binding Path=my_aComponent, Converter={StaticResource _ueControlConverter}
和秒。显示了右边的UserControl
,但没有与my_aComponent
绑定。
我该怎么办?
提示:.NET比VB6更好! Dim split As String = assemblyKlassenname.Split({“。”c},2)''Dim assemblyKlassenname As String = split(0)''Dim klassenName As String = split(1)' – Ryan