WPF DataGrid 显示点而不是逗号 [英] WPF DataGrid shows dot instead comma

查看:27
本文介绍了WPF DataGrid 显示点而不是逗号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在网上搜了搜没有结果的答案,想请教大家.我有一个包含 2 列的 SQL 数据库表(浮点数据类型,例如 1,2 1,3 1,4 等)

After digging on the internet and searching for answers without result, I would like to ask you for help. I have a SQL database table with 2 columns (float datatype e.g 1,2 1,3 1,4 etc.)

绑定到 DataGrid

.

XAML 代码:

<CollectionViewSource x:Key="Tab_LosTab_PolterTab_PoltersektionViewSource" Source="{Binding Tab_Polter_Tab_Poltersektion, Source={StaticResource Tab_LosTab_PolterViewSource}}"/>

<DataGrid x:Name="Tab_PoltersektionDataGrid" IsReadOnly="False" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding Source={StaticResource Tab_LosTab_PolterTab_PoltersektionViewSource}}" Margin="10,250,10,60" RowDetailsVisibilityMode="VisibleWhenSelected">
    <DataGrid.Columns>
    <DataGridTextColumn x:Name="Polter_H_vornColumn" Binding="{Binding Polter_H_vorn}" Header="Polterhöhe vorn" Width="*"/>
    <DataGridTextColumn x:Name="Polter_H_hintenColumn" Binding="{Binding Polter_H_hinten}" Header="Polterhöhe hinten" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

和 Vb.Net 代码:

and Vb.Net code:

Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles MyBase.Loaded
    Dim DataSet1Tab_PoltersektionTableAdapter As PV.DataSet1TableAdapters.Tab_PoltersektionTableAdapter = New PV.DataSet1TableAdapters.Tab_PoltersektionTableAdapter()
    DataSet1Tab_PoltersektionTableAdapter.Fill(DataSet1.Tab_Poltersektion)
    Dim Tab_LosTab_PolterTab_PoltersektionViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("Tab_LosTab_PolterTab_PoltersektionViewSource"), System.Windows.Data.CollectionViewSource)
    Tab_LosTab_PolterTab_PoltersektionViewSource.View.MoveCurrentToFirst()
End Sub

我的问题是我的 DataGrid 以这种方式显示这些值:1.2 1.3 1.4 我需要它们像这样显示:1,2 1,3 1,4 等等.当我尝试编辑一些值并输入 1,2 它返回 12.我的 PC 语言首选项设置为欧洲.有什么建议吗?

My problem is that my DataGrid displays those values this way: 1.2 1.3 1.4 where I need them to be displayed like this: 1,2 1,3 1,4 etc. When I try to edit some value and type 1,2 it returns 12. My PC language preferences are set as a European. Any advice?

推荐答案

您可以使用 IValueConverter 来处理此问题.

You could use a IValueConverter to handle this.

public class GermanNumberConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return ((float)value).ToString(CultureInfo.CreateSpecificCulture("de-DE"));
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return float.Parse(value.ToString());
    }
}

在您的 xaml 代码中,您可以像这样使用这个转换器

And in your xaml code you use this converter like

<DataGridTextColumn Binding="{Binding Polter_H_hinten, Converter={StaticResource GermanNumberConverter}}" />

您也必须在 Window 中指定转换器.

You have to specify the converter in your Window, too.

<Window.Resources>
    <ResourceDictionary>
        <c:GermanNumberConverter x:Key="GermanNumberConverter" />
    </ResourceDictionary>
</Window.Resources>

这篇关于WPF DataGrid 显示点而不是逗号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆