DataTemplates and generic types

2019-02-25 17:12发布

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?

1条回答
欢心
2楼-- · 2019-02-25 18:00

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.

查看更多
登录 后发表回答