我需要在WPF中为DataGrid列添加千位分隔符。我正在将数据绑定到.cs文件中的网格。
dataGrid.ItemsSource = data;
在xaml文件中,我没有定义列。
<DataGrid Name="DgReplenish" Style="{StaticResource DataGridStyle}" Grid.Row="0" CellStyle="{StaticResource DataGridCellStyle}">
</DataGrid>
如何在绑定数据后将thosand分隔符设置为网格中的第三列? 例如,如果值是15650,我想将其显示为15,650。
答案 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>
它看起来像这样: