2010-07-27 142 views
2

我的標籤顯示'7/27/2010',而不是'2010年7月27日'。有人可以告訴我爲什麼我的標記代碼顯然被忽略嗎?忽略xaml日期格式字符串

RibbonLabel Content="{Binding Source={x:Static sys:DateTime.Today}, StringFormat='{}{0:MMMM d, yyyy}'}" 

乾杯,
Berryl

回答

11

如果被施加到String類型的屬性的綁定的屬性的StringFormat時才使用。由於內容是對象類型的,因此不使用它。取而代之的是內容的日期直接設置的,將其設置爲一個TextBlock,使用的StringFormat設置TextBlock的Text屬性:

<RibbonLabel> 
    <TextBlock Text="{Binding Source={x:Static sys:DateTime.Today}, 
     StringFormat='{}{0:MMMM d, yyyy}'}"/> 
</RibbonLabel> 

你也可以定義DateTime的一個DataTemplate,然後只將內容設置爲今天:

<Window.Resources> 
    <DataTemplate DataType="{x:Type sys:DateTime}"> 
     <TextBlock Text="{Binding StringFormat='{}{0:MMMM d, yyyy}'}"/> 
    </DataTemplate> 
</Window.Resources> 
... 
<RibbonLabel Content="{Binding Source={x:Static sys:DateTime.Today}}"> 

編輯:更簡單的解決方案是使用ContentStringFormat財產

<RibbonLabel Content="{Binding Source={x:Static sys:DateTime.Today}}" 
    ContentStringFormat="{}{0:MMMM d, yyyy}" /> 
+2

你是一個生命保護者。萬分感謝** – Sayka 2015-04-08 21:43:09