日期字符串格式绑定不起作用

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 作为输出。

更新

控件 LabelContent 属性 是对象类型,不像字符串那样应用格式。这是您的选择,

使用标签上的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}"/>