如何将DataGrid单元格的内容格式化为日期?作为货币?

时间:2010-03-12 03:10:21

标签: c# .net silverlight xaml datagrid

我有一个Silverlight DataGrid,每个列都填充了不同类型的数据。我试图弄清楚如何格式化DataGrid单元格的一些内容,特别是日期和格式。

我的日期列目前显示如下: 3/11/2010 12:00:00 AM 。我希望它显示为 3/14/2010

我有一个数字列,目前显示如下: 51.32 。我宁愿将其显示为 $ 51.32 等货币。

我不知道如何才能做到这一点。我更喜欢用XAML而不是C#来做,但两种解决方案都很好。


作为参考,这是我到目前为止的XAML:

    </data:DataGridTextColumn>

        <data:DataGridTextColumn Header="Payee" 
                                 Binding="{Binding Payee}"/>
        <data:DataGridTextColumn Header="Category"
                                 Binding="{Binding Category}"/>
        <data:DataGridTextColumn Header="Memo" 
                                 Binding="{Binding Memo}"/>
        <data:DataGridTextColumn Header="Inflow" 
                                 Binding="{Binding Inflow}"/>
        <data:DataGridTextColumn Header="Outflow" 
                                 Binding="{Binding Outflow}"/>
    </data:DataGrid.Columns>

2 个答案:

答案 0 :(得分:5)

如果您有可能等待Silverlight 4的发布,可能会在下周的Mix10上发布。它在绑定中有一些新功能,比如格式化。使用Silverlight 4,您可以执行以下操作:

<TextBox Text="{Binding ReleaseDate, StringFormat='MMM dd, yyyy', 
                    Mode=TwoWay}" />

Shawn Wildermuth对his blog上的新功能有一个很好的概述。

答案 1 :(得分:1)

您可以使用基于string.Format的IValueconverter并将其绑定在XAML中。

Check out how to do it here

Yet another article to address the same