如何在DataGridTextColumn上将XAML中的双值格式化为德语格式
本文关键字:格式化 格式 德语 DataGridTextColumn 上将 XAML | 更新日期: 2023-09-27 18:00:28
我有一段简单的代码,我想知道如何将其转换为德语格式(#.###,##)?
// displays #.##
<DataGridTextColumn Header="Sum Value" Binding="{Binding SumValue}"/>
在这种情况下,尝试几个选项:
A。全局设置语言文化对于整个应用程序来说,可以解决一些与当前语言文化相关的问题。
为App.xaml
添加Startup
事件,从而建立必要的语言文化。它影响日期的显示,双值,金额等
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>