DataTemplates和泛型类型

时间:2011-07-05 17:29:15

标签: c# mvvm datatemplate

我有一个通用类

public abstract class BaseViewModel<T>

由于我正在尝试创建一个将应用于从BaseViewModel派生的所有类的DataTemplate,我将类型设置为BaseViewModel:

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

但是,这不起作用,因为它看起来像xaml不支持通用数据类型。

有没有解决这个问题?

1 个答案:

答案 0 :(得分: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将会起作用。