我有一个普通类

public abstract class BaseViewModel<T>

由于我试图创建一个数据模板,该模板将应用于从BaseViewModel派生的所有类,因此我将类型设置为BaseViewModel:
<DataTemplate DataType="{x:Type vm:BaseViewModel}">

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

有什么解决方法吗?

最佳答案

我将创建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就可以使用了。

关于c# - 数据模板和通用类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6586528/

10-10 15:18