2011-07-05 52 views
2

我有一個泛型類的DataTemplates和泛型類型

public abstract class BaseViewModel<T> 

由於我試圖創建將被應用到從BaseViewModel派生的所有類一個DataTemplate,我將類型設置爲BaseViewModel:

<DataTemplate DataType="{x:Type vm:BaseViewModel}"> 

但是,這不起作用,因爲它看起來像xaml不支持通用數據類型。

有沒有解決這個問題的方法?

+0

[我可以在XAML中指定泛型類型嗎?](http://stackoverflow.com/questions/185349/can-i-specify-a-generic-type-in​​-xaml) –

回答

8

我會創造的BaseViewModel非通用版本,讓從它的通用一個繼承:

public abstract class BaseViewModel 
{ 
    // members that are not T-specific, if any 
    // (not required, but could prove useful) 
} 

public abstract class BaseViewModel<T> : BaseViewModel 
{ 
    // T-specific members 
} 

通過這樣做,你的DataTemplate去上班。