Ana*_*nth 1 .net c# format silverlight datagrid
我有一个数据网格.其Item源设置为List.我的问题是Iam无法应用字符串格式.这是我尝试过的格式.我错过了什么吗?StringFormat ='MM/dd/yyyy'BtringFormat = {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>
Run Code Online (Sandbox Code Playgroud)
小智 5
如果我理解您正在尝试正确执行的操作,则您有一个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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在您的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\} }" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |