gpt4 book ai didi

c# - 无法在 Silverlight DataGrid 列中应用字符串格式

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:35 26 4
gpt4 key购买 nike

我有一个数据网格。它的项目源设置为列表。我的问题是我无法应用字符串格式。这是我试过的格式。我错过了什么吗?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" /> ,您将需要使用新转换器绑定(bind)列的数据:

<TextBlock Text="{Binding Path=RecievedDate, Converter={StaticResource Formatter}, ConverterParameter=\{0:dd-MMM-yyy\} }" />

关于c# - 无法在 Silverlight DataGrid 列中应用字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13804630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com