我有一个普通类
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/