绑定中 Datetime 对象的 StringFormat 为小时和分钟返回 0
StringFormat of Datetime object in binding gives back 0 for hour and minute
我用 Datetime.Now 创建了一个 Datetime 对象,我把它作为 class 的 属性。
当我将其绑定到网格视图时:
<GridViewColumn Header="Date" Width="120" DisplayMemberBinding="{Binding transaction_date1, StringFormat=HH:mm}" />
结果总是00:00。
当我调试代码时,我发现 Datetime 对象的小时、分钟等属性包含非零值。
我认为 StringFormat 在这种情况下从具有正确日期但始终具有 12:00:00 AM 作为小时的 Datetime 对象中的 Date 对象获取小时和分钟。
有什么方法可以绕过它并在我的 window 中显示正确的小时和分钟吗?
提前致谢!
改成这样:
<GridViewColumn Header="Date" Width="120" DisplayMemberBinding="{Binding transaction_date1, StringFormat='{}{0:HH:mm}'}" />
如果您想使用 StringFormat
自定义格式,则必须使用此方法,在格式字符串中提供参数索引。相当于:
string.Format("{0:HH:mm}", transaction_date1);
开头的两个花括号 {}
是对 XAML 解析器的指示,用于忽略在字符串中找到的其他花括号。因此,您可以在一个绑定语句中多次使用您的日期值:
DisplayMemberBinding="{Binding transaction_date1, StringFormat=`{} Your date-time is {0:dd/mm/yy} at approx. {0:HH} hours and {0:mm} minutes`}"
我用 Datetime.Now 创建了一个 Datetime 对象,我把它作为 class 的 属性。
当我将其绑定到网格视图时:
<GridViewColumn Header="Date" Width="120" DisplayMemberBinding="{Binding transaction_date1, StringFormat=HH:mm}" />
结果总是00:00。
当我调试代码时,我发现 Datetime 对象的小时、分钟等属性包含非零值。 我认为 StringFormat 在这种情况下从具有正确日期但始终具有 12:00:00 AM 作为小时的 Datetime 对象中的 Date 对象获取小时和分钟。
有什么方法可以绕过它并在我的 window 中显示正确的小时和分钟吗?
提前致谢!
改成这样:
<GridViewColumn Header="Date" Width="120" DisplayMemberBinding="{Binding transaction_date1, StringFormat='{}{0:HH:mm}'}" />
如果您想使用 StringFormat
自定义格式,则必须使用此方法,在格式字符串中提供参数索引。相当于:
string.Format("{0:HH:mm}", transaction_date1);
开头的两个花括号 {}
是对 XAML 解析器的指示,用于忽略在字符串中找到的其他花括号。因此,您可以在一个绑定语句中多次使用您的日期值:
DisplayMemberBinding="{Binding transaction_date1, StringFormat=`{} Your date-time is {0:dd/mm/yy} at approx. {0:HH} hours and {0:mm} minutes`}"