2011-07-05 50 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去上班。