如何在 xaml 元素中指定 null(例如,当传递给可为空类型的集合时)

1 .net wpf null xaml nullable

我有一个我写的 WPF IValueConverter。我计划在很多地方使用它。它有一个公共属性,它是可为空的 DateTume 的集合。即列表例如

private List<DateTime?> _dates = new List<DateTime?>();
public List<DateTime?> Dates 
{ 
  get { return _dates; }
  set { _dates = value; }
}
Run Code Online (Sandbox Code Playgroud)

如何在 XAML 中传递一组值,包括空值?

我的尝试是

<myns:MyConverter x:key="MyName">
  <myns:MyConverter.Dates>
    <sys:DateTime>1 Jan 2014</sys:DateTime> <!-- this works -->
    <sys:DateTime /> <!-- unf this comes through as 1 Jan 0001 -->
    <sys:DateTime? /> <!-- invalid syntax with the ? character -->
  </myns:MyConverter.Dates>
</myns:MyConverter>
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以使用:{x:Null}用于 XAML 代码中的 null


Cle*_*ens 5

您可以添加<x:Null/>Dates列表中:

<myns:MyConverter x:key="MyName">
    <myns:MyConverter.Dates>
        <sys:DateTime>1 Jan 2014</sys:DateTime>
        <x:Null/>
        <sys:DateTime>2 Jan 2014</sys:DateTime>
    </myns:MyConverter.Dates>
</myns:MyConverter>
Run Code Online (Sandbox Code Playgroud)