.CS文件中的DataGrid千位分隔符WPF

时间:2018-06-28 04:32:05

标签: c# wpf data-binding wpfdatagrid

我需要在WPF中为DataGrid列添加千位分隔符。我正在将数据绑定到.cs文件中的网格。

dataGrid.ItemsSource = data;

在xaml文件中,我没有定义列。

<DataGrid Name="DgReplenish" Style="{StaticResource DataGridStyle}" Grid.Row="0" CellStyle="{StaticResource DataGridCellStyle}">
        </DataGrid>

如何在绑定数据后将thosand分隔符设置为网格中的第三列? 例如,如果值是15650,我想将其显示为15,650。

1 个答案:

答案 0 :(得分:1)

AutoGenerateColumns="False"上设置DataGrid并分别定义每列。然后,您可以更好地控制每一列,例如您可以指定数字格式。为了显示千位分隔符,请对N0使用StringFormat

这里是一个例子:

<Window x:Class="WpfApplication11.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        Title="MainWindow" Height="200" Width="300">
    <Window.Resources>
        <!-- This is just some sample data: -->
        <x:Array x:Key="DemoData" Type="{x:Type Point}">
            <Point X="1234" Y="1234"/>
            <Point X="33" Y="33"/>
            <Point X="444444" Y="444444"/>
            <Point X="0" Y="0"/>
        </x:Array>
</Window.Resources>
    <Grid>
        <DataGrid ItemsSource="{StaticResource DemoData}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="X (without separators)" Binding="{Binding X}"/>
                <DataGridTextColumn Header="Y (with separators)" Binding="{Binding Y, StringFormat=N0}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

它看起来像这样:

Screen shot