日期字符串格式绑定不起作用
date string format binding not working
我正在尝试将日期格式设置为 "MM/dd/yyyy",但是,当前日期格式也会随着时间的推移而变化,我尝试使用以下代码对其进行格式化,但它并没有改变,请问纠正我如下:
<DataGridTextColumn Header="Bill Date" Binding="{Binding BillDate, StringFormat={}{0:MM/dd/yyyy}}" Width="90" IsReadOnly="True" />
和
<DataGridTemplateColumn Header="Bill Date" Width="90">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding BillDate}" ContentStringFormat="MM/dd/yyyy" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我的房产代码如下:
Property BillDate As Date
Get
Return _BillDate
End Get
Set(Value As Date)
If Not _BillDate = Value Then
_BillDate = Value
NotifyPropertyChanged("BillDate")
End If
End Set
End Property
我不想在属性级别更正,我只想在 XAML 中显示格式,尽管据我所知,上述格式是正确的,但它不起作用。
编辑:
经过多次尝试和一些经验之后,我开始知道解决方案不是构建任何新代码。所以,现在的问题是——新的、修改过的 xaml 没有被构建。你能帮我一下吗?
尝试
"{Binding BillDate, StringFormat=d}"
这应该给你 month/day/year 作为输出。
更新
控件 Label
的 Content
属性 是对象类型,不像字符串那样应用格式。这是您的选择,
使用标签上的ContentStringFormat属性:
<Label ContentStringFormat="d">
<system:DateTime>2015/3/4 13:6:55</system:DateTime>
</Label>
或者TextBox
控件,Text
属性是一个字符串,它接受格式化参数。
你的 属性 的类型应该是 DateTime
,而不是 Date
:
Property BillDate As DateTime
...
End Property
然后这个有效:
<Label Content="{Binding BillDate}" ContentStringFormat="MM/dd/yyyy"/>
但您最好使用 TextBlock 而不是 Label:
<TextBlock Text="{Binding BillDate, StringFormat=MM/dd/yyyy}"/>
我正在尝试将日期格式设置为 "MM/dd/yyyy",但是,当前日期格式也会随着时间的推移而变化,我尝试使用以下代码对其进行格式化,但它并没有改变,请问纠正我如下:
<DataGridTextColumn Header="Bill Date" Binding="{Binding BillDate, StringFormat={}{0:MM/dd/yyyy}}" Width="90" IsReadOnly="True" />
和
<DataGridTemplateColumn Header="Bill Date" Width="90">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding BillDate}" ContentStringFormat="MM/dd/yyyy" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我的房产代码如下:
Property BillDate As Date
Get
Return _BillDate
End Get
Set(Value As Date)
If Not _BillDate = Value Then
_BillDate = Value
NotifyPropertyChanged("BillDate")
End If
End Set
End Property
我不想在属性级别更正,我只想在 XAML 中显示格式,尽管据我所知,上述格式是正确的,但它不起作用。
编辑: 经过多次尝试和一些经验之后,我开始知道解决方案不是构建任何新代码。所以,现在的问题是——新的、修改过的 xaml 没有被构建。你能帮我一下吗?
尝试
"{Binding BillDate, StringFormat=d}"
这应该给你 month/day/year 作为输出。
更新
控件 Label
的 Content
属性 是对象类型,不像字符串那样应用格式。这是您的选择,
使用标签上的ContentStringFormat属性:
<Label ContentStringFormat="d">
<system:DateTime>2015/3/4 13:6:55</system:DateTime>
</Label>
或者TextBox
控件,Text
属性是一个字符串,它接受格式化参数。
你的 属性 的类型应该是 DateTime
,而不是 Date
:
Property BillDate As DateTime
...
End Property
然后这个有效:
<Label Content="{Binding BillDate}" ContentStringFormat="MM/dd/yyyy"/>
但您最好使用 TextBlock 而不是 Label:
<TextBlock Text="{Binding BillDate, StringFormat=MM/dd/yyyy}"/>