使用 XAML 定义的泛型类

本文关键字:泛型类 定义 XAML 使用 | 更新日期: 2023-09-27 18:37:02

有许多

示例说明如何使用泛型基类型在 XAML 中定义类。你可以做这样的事情:

<local:A
            x:Class="B"
            x:TypeArguments="local:Foo"
<local:A/>
-----------------
public class B : A<Foo> { }

但是,如果我也想使A类成为通用的呢?像这样:

<local:A
            x:Class="B"
            x:TypeArguments="T" // Compiler error: "The type "T" was not found"
<local:A/>
-----------------
public class B<T> : A<T> { }

这在 XAML 中根本不可能做到吗?

使用 XAML 定义的泛型类

AFAIK 您不会在 XAML 中定义类,您只是创建已定义类的实例,因此当您编写

<local:A
        x:Class="B"
        x:TypeArguments="local:Foo"
<local:A/>

您正在创建一个传递 Foo 的实例作为类型参数,并且在实例化 GenericType 时无法传递 T。

当你创建一个新的泛型列表时,你可以这样想一想,你能写new List<T>()