【问题标题】:WPF: Is there a way to bind to a Nullable<Int32> property without using a value converter?WPF:有没有办法在不使用值转换器的情况下绑定到 Nullable<Int32> 属性?
【发布时间】:2010-07-20 08:27:18
【问题描述】:

有没有办法在不使用值转换器的情况下绑定到 Nullable 属性?

目前我有这个...

<DataGridTextColumn Header="ApplicationKey" Binding="{Binding ApplicationKey, ValidatesOnDataErrors=True, Converter={StaticResource ResourceKey=TestConverter}}" />

如果没有转换器,它会将空文本框视为 String.Empty 而不是 Null。

我希望有某种神奇的属性,比如 TargetNullValue。

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    是的,Binding 上的TargetNullValue 属性应该完全符合您的要求。如果将 TargetNullValue 设置为空字符串,则绑定会将空字符串转换为 null 并返回:

    <DataGridTextColumn Header="ApplicationKey" Binding=
        "{Binding ApplicationKey, ValidatesOnDataErrors=True, TargetNullValue=''}" />
    

    【讨论】:

      【解决方案2】:

      那么让我直截了当地说...您希望将文本绑定为 null 而不是 string.empty?

      如果是这种情况,您可以绑定到视图模型中的属性,而不是通过转换器绑定(如果您没有视图模型,您可以创建它并将您的 xaml 绑定到它)。

      然后,该属性可能会返回(在属性的 getter 部分中)空值而不是 string.empty。

      如果这不能解决您的问题,请更详细地描述您为什么要绑定到 null 而不是 string.empty。

      【讨论】:

        猜你喜欢
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2014-07-04
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        相关资源
        最近更新 更多