我有一個抽象基類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