我有一个通用类
public abstract class BaseViewModel<T>
由于我正在尝试创建一个将应用于从BaseViewModel派生的所有类的DataTemplate,我将类型设置为BaseViewModel:
<DataTemplate DataType="{x:Type vm:BaseViewModel}">
但是,这不起作用,因为它看起来像xaml不支持通用数据类型。
有没有解决这个问题?
答案 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
将会起作用。