WPF DataGrid 显示点而不是逗号 [英] WPF DataGrid shows dot instead comma
问题描述
在网上搜了搜没有结果的答案,想请教大家.我有一个包含 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屋!