的DataTemplates和泛型类型 [英] DataTemplates and generic types

查看:276
本文介绍了的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆