【问题标题】:DateTime.Now in XAML without bindingXAML 中的 DateTime.Now 没有绑定
【发布时间】:2017-07-14 22:04:17
【问题描述】:

我可以将今天的日期放在标签中而不在 XAML 中绑定它,比如

<Label Text="DateTime.Now, StringFormat='{0:MMMM dd, yyyy}'"/>

【问题讨论】:

    标签: c# xaml datetime xamarin.forms


    【解决方案1】:

    我可以将今天的日期放在标签中而不在 XAML 中绑定它

    不,你不能。

    对于绑定,使用

    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    

    <Label Content="{Binding Source={x:Static sys:DateTime.Now}, StringFormat='{0:MMMM dd, yyyy}'}" />
    

    不过,您可以像 myLabelControl.Content = DateTime.Now; 这样从 Code behind 中设置它,但我会完全避免这种情况。

    【讨论】:

    • 此绑定不更新时间。就像我添加新标签一样,它会显示上一个日期
    • 我使用了 .NetStandard,所以我使用了这个:xmlns:sys="clr-namespace:System;assembly=netstandard"
    • 为了清楚起见,您可以将当前日期放在没有绑定的标签中:&lt;Label Content="{x:Static sys:DateTime.Now}" /&gt;。但是,如果要格式化日期,则需要绑定。
    • hmmmm,这行得通:&lt;Label Content="{x:Static sys:DateTime.Today}" ContentStringFormat="d/M/yyyy" /&gt; Label 没有 StringFormat 属性,因为 'Content' 是一个对象,而不是字符串。
    【解决方案2】:

    对我来说,下面的代码有效

    <Label Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat='{0:dd MMMM yyyy, HH:mm}'}" />
    

    我在 ContentPage 标签中添加了下面的命名空间

    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    

    Xamarin.Forms 中不存在 Content 属性,因此我将“Content”替换为“Text”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多