c# - 更改 WPF ListView 中的小数点分隔符(绑定、字符串格式)
问题描述
我有一个带有数字的 DataTable,它是 ListView 的 ItemsSource,我希望它们格式化为带有“,”作为十进制分隔符和“。”的货币。作为组分隔符。
我通常知道它如何在绑定(XAML 和代码隐藏)中与 StringFormat 一起使用,如以下问题所示:
但这次它不起作用:我的 ListView 显示 '.' 尽管如此,作为小数分隔符。我的示例中的特殊之处在于,我需要在运行时生成 GridViewColumns,并以编程方式将 DataTemplates 加载到其中,例如:
GridViewColumn Amount_col= new GridViewColumn();
Amount_col.Header = "Gesamt";
DataTemplate dataTemplate = new DataTemplate(typeof(TextBlock));
FrameworkElementFactory Grid = new FrameworkElementFactory(typeof(Grid));
FrameworkElementFactory Txtblck= new FrameworkElementFactory(typeof(TextBlock));
Binding binding = new Binding("AMOUNT");
Txtblck.SetBinding(TextBlock.TextProperty, binding);
binding.StringFormat = String.Format(new CultureInfo("de-DE"), "#,#.00€", Txtblck.Text); //not working
Grid.AppendChild(Txtblck);
dataTemplate.VisualTree = Grid;
Amount_col.CellTemplate = dataTemplate;
Eintraege_view.Columns.Add(Amount_col);
输出如下: https ://i.stack.imgur.com/QuN6c.png (还不允许包含图片)
但我需要一个格式如下的输出:1.234,67€ 而不是 1,234.67€。
我还检查了我的 CurrentCulture 和 CurrentUICulture ,它们都是“de-DE”。
我也试过:
binding.StringFormat = String.Format(new CultureInfo("de-DE"), "{0:N}", Txtblck.Text);
我尝试通过 NumberFormatInfo 更改小数点和组分隔符,但这也不起作用。
我想问题出在绑定、ListView 或 Textblock 上,但我找不到真正的问题。有人可以帮我解决这个问题并使我的分隔符成为','。
解决方案
也许您可以创建一个继承自 Binding 的 CultureAwareBinding 类:
public class CultureAwareBinding : Binding
{
public CultureAwareBinding(string path)
: base(path)
{
ConverterCulture = CultureInfo.CurrentCulture;
}
}
然后,在您的代码中使用此类:
var binding = new CultureAwareBinding("AMOUNT");
Txtblck.SetBinding(TextBlock.TextProperty, binding);
我从这篇文章中提取了这段代码。
推荐阅读
- python - 在 2 个数据帧之间查找一个值
- datatable - 数据表 row.add().draw() 只显示第一个字母
- spring-boot - Spring Boot 项目的 Gradle 构建错误
- maven - Pyimagej conda install 用于 JupyterLab Notebook,如何解决 maven 依赖?
- angular-material - 在 PowerPoint 加载项中滚动大量项目时出现 Angular Mat-Select 闪烁问题
- proxy - Squid 条件选择父代理
- python - Python错误TypeError:__init__()缺少2个必需的位置参数:和ctypes
- python - 在 Mac 上安装 gcloud 时遇到问题
- python - 在python中结合正负前瞻
- postgresql - \copy 命令在 psql 上