的DataTemplates和泛型类型 [英] DataTemplates and generic types
本文介绍了的DataTemplates和泛型类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个泛型类
public abstract class BaseViewModel< T>
由于我试图创建一个DataTemplate,将应用于从BaseViewModel派生的所有类,将类型设置为BaseViewModel:
< DataTemplate DataType ={x:Type vm:BaseViewModel}>
但是,这不工作,因为看起来xaml不支持通用数据类型。
解决方案
我会创建一个non BaseViewModel
的通用版本,并让通用类继承自它:
public abstract class BaseViewModel
{
//不是特定于T的成员(如果有的话)
//(不是必需的但可以证明有用)
}
public abstract class BaseViewModel< T> :BaseViewModel
{
// T特定成员
}
通过这样做,你的 DataTemplate
将工作。
I have a generic class
public abstract class BaseViewModel<T>
Since I am trying to create a DataTemplate that will be applied to all classes that derive from BaseViewModel, I set the type to BaseViewModel:
<DataTemplate DataType="{x:Type vm:BaseViewModel}">
However, this does not work since it looks like xaml does not support generic data types.
Are there any work arounds to this?
解决方案
I would create a non-generic version of BaseViewModel
and let the generic one inherit from it:
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
}
By doing this, your DataTemplate
is going to work.
这篇关于的DataTemplates和泛型类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文