2017-03-17 4 views
2

インターネットで掘り下げて結果のない回答を検索した後、助けを求めます。私はDataGridWPF DataGridではカンマの代わりにドットが表示されます

like thisに結合している2列(floatデータ型例えば1,2 1,3 1,4等)

like this

とSQLデータベーステーブルを有しています。

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コード:

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の言語設定はヨーロッパ言語に設定されています。何かアドバイス?

+0

文化地獄へようこそ。私はヨーロッパの文化はドイツ語だと思いますか? –

+0

はいそれはドイツ語です – Przemko

+0

[このページ](このページはhttps://social.msdn.microsoft.com/Forums/windows/en-US/ecefc66d-d8ab-40ef-a6c1-600e6e71e9f2/decimal-formatting-in-datagridview- comm-as-decimal-separator?forum = winforms)を使用すると、いくつかのアイデアを得るのに役立つかもしれません。私は特にcultureInfoポストを設定するのが好きです。 –

答えて

1

IValueConverterを使用してこれを処理できます。

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コードにあなたはあまりにも、あなたのWindowにコンバータを指定する必要が

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

のように、このコンバータを使用。

<Window.Resources> 
    <ResourceDictionary> 
     <c:GermanNumberConverter x:Key="GermanNumberConverter" /> 
    </ResourceDictionary> 
</Window.Resources> 
関連する問題