我正在尝试将日期格式设置为“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没有建成。你能帮帮我吧吗?
答案 0 :(得分:4)
尝试
"{Binding BillDate, StringFormat=d}"
应该以月/日/年为输出。
控件Label
的{{1}}属性属于object类型,并不像字符串那样应用格式。以下是您的选择,
使用标签上的ContentStringFormat属性:
Content
或者<Label ContentStringFormat="d">
<system:DateTime>2015/3/4 13:6:55</system:DateTime>
</Label>
控件,TextBox
属性是一个字符串,它需要格式化参数。
答案 1 :(得分:3)
您的媒体资源类型应为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}"/>