x:TypeArguments中的类型可为null

本文关键字:null 类型 TypeArguments | 更新日期: 2023-09-27 18:27:47

是否可以将可为null的类型传递给XAML泛型类型参数(x:TypeArguments)?

我有:

 <base:ControlBase
  x:TypeArguments="sys:Int32"
  ...

我需要Int32可以为null。。类似的东西

<base:ControlBase
  x:TypeArguments="sys:Nullable<sys:Int32>"
 ...

这似乎是无效的XML/XAML。

我也试图将其声明为sys:Nullabe&lt;sys:Int32&gt;,错误为:

"sys.Nullable"不是泛型参数的有效类型名引用

x:TypeArguments中的类型可为null

不,不幸的是,这是不可能的。您需要创建一个中间类来克服这个问题(我已经尝试了所有可能的方法,但都不起作用)。

<base:NullableInt32ControlBase ... >

其中NullableControlBase是中间类:

public class NullableInt32ControlBase : ControlBase<int?>
{ }

这应该做到:

sys:Nullable`1[System.Int32]

Intellisende和Resharper在这方面给了你一个错误,但它应该可以工作。