[英]Unable to apply string formatting in Silverlight DataGrid column
我有一個數據網格。 其“項目”來源設置為“列表”。 我的問題是Iam無法應用字符串格式。 這是我嘗試過的格式。 我錯過了什么嗎? StringFormat ='MM / dd / yyyy'StringFormat = {0:dd-MMM-yyyy}
附加結果網格
<sdk:DataGridTemplateColumn Header="Recieved Date" Width="Auto" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=RecievedDate, StringFormat=\{0:dd-MMM-yyyy\} }" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<sdk:DatePicker Name="dtpFinancialAndComplianceLog" Text="{Binding Path=RecievedDate,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
如果我了解您要正確執行的操作,則有一個DataGrid列,您希望以某種格式顯示DateTime對象。 通常,DateTime對象將根據System.Threading.Thread.CurrentUICulture整理出自己的格式。
我知道將任何對象強制轉換為某種格式的最簡單方法是使用自定義IValueConverter:
namespace MyProject.Converters
{
public class FormatConverter : IValueConverter
{//Suitable only for read-only data
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return string.Empty;
if(string.IsNullOrEmpty(parameter.ToString()))
return value.ToString();
return string.Format(culture, parameter.ToString(), value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
}
將名稱空間添加到您的xaml: xmlns:conv="clr-namespace:MyProject.Converters"
並在控件的資源<conv:FormatConverter x:Key="Formatter" />
聲明轉換器之后,您將需要綁定列的使用新的轉換器獲取數據:
<TextBlock Text="{Binding Path=RecievedDate, Converter={StaticResource Formatter}, ConverterParameter=\{0:dd-MMM-yyy\} }" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.