DataGrid разделитель тысяч WPF в файле .CS - PullRequest
0 голосов
/ 28 июня 2018

Мне нужно добавить разделитель тысяч для столбца DataGrid в WPF. Я привязываю данные к сетке в файле .cs.

dataGrid.ItemsSource = data;

В файле xaml я не определяю столбцы.

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

Как я могу установить разделитель тысяч на третий столбец в сетке после привязки данных? Например, если значение равно 15650, я хочу показать, что это 15.650.

1 Ответ

0 голосов
/ 28 июня 2018

Установите 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

...