如何在DataGridTextColumn上将XAML中的double值格式化为德语格式?

时间:2014-04-27 16:04:13

标签: c# wpf xaml format double

我有这段简单的代码,我想知道如何将其转换为德语格式(#。###,##)?

// displays #.##
<DataGridTextColumn Header="Sum Value" Binding="{Binding SumValue}"/>

1 个答案:

答案 0 :(得分:0)

在这种情况下,请尝试以下几种方法:

  

一个。针对整个应用程序的全局设置语言文化,它可以解决与当前语言文化相关的一些问题。

Startup添加App.xaml个事件,以确定必要的语言文化。它会影响日期,双值,金额等的显示:

XAML

<Application x:Class="DataGridTargetUpdateHelp.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             Startup="Application_Startup">

    <Application.Resources>

    </Application.Resources>
</Application>

Code-behind

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
            new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage("de-DE"))); // CultureInfo.CurrentCulture.IetfLanguageTag return the current code of language
    }
}
  

B中。使用DataGridTemplateColumn

在这种情况下,您可以设置任何Control以在DataGridCell中显示值:

<DataGrid.Columns>
    <DataGridTemplateColumn Header="ID">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Path=ID, StringFormat={}{0:N2}}" xml:lang="de-DE" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>