格式化Datagrid中的值

Kyl*_*yle 9 c# wpf

有没有办法格式化绑定到数据网格的值?例如,我有以下内容:

<DataGrid AutoGenerateColumns="False" Height="487" HorizontalAlignment="Left" Margin="12,12,0,0" Name="dgTransactionLog" VerticalAlignment="Top" Width="404">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=Date}" Header="Date" />
        <DataGridTextColumn Binding="{Binding Path=Payee1.Name}" Header="To/From" />
        <DataGridTextColumn Binding="{Binding Path=Amount}" Header="Amount" />
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

我希望Date列只是日期(而不是时间),Amount列是货币格式.以下是我填充数据网格的方法:

var transactions = TransactionManager.GetTransactions();
dgTransactionLog.ItemsSource = transactions;
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 22

使用该StringFormat属性:

<DataGridTextColumn Binding="{Binding Path=Date, StringFormat=d}" Header="Date" />
<DataGridTextColumn Binding="{Binding Path=Amount, StringFormat=C}" Header="Amount" />
Run Code Online (Sandbox Code Playgroud)


JD-*_*D-V 7

一种最简单的方法。在下面的代码中,使用您的语言代码作为 ConverterCulture 的值。您可以在这里找到您的语言代码

<DataGridTextColumn Binding="{Binding Profit, ConverterCulture='gu-IN' ,StringFormat=c}" Header="Profit" Width="*" MinWidth="80" FontWeight="Normal"/>
Run Code Online (Sandbox Code Playgroud)

输出将以您的当地货币显示输出截图

对于货币以外的任何内容,请在此处找到 stringFormat 说明符