Search code examples
wpfformattinglabelmask

How to format a Label to have a Display Format String?


I have a Label:

<Label Name="lblBilledDate"
       Content="{Binding Path=BilledDate, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">
</Label>

It is bound to a DateTime value.

How can i change the label to display the value to this: DisplayFormatString="dd MMM yyyy"

Currently the Label just dispalys: 1/1/2010

I need it to dispaly: 1 Jan 2010


Solution

  • Use the ContentStringFormat attribute.

    <Label x:Name="SomeLabel"
           Content="{Binding BilledDate}"
           ContentStringFormat="dd MMM yyyy" />
    

    This is because Label inherits from ContentControl. Any ContentControl contains the ContentStringFormat attribute. Additionally, ItemsControl has ItemStringFormat and BindingBase has StringFormat.