DataGridView:如何允许逗号和句点同时作为分隔符
本文关键字:分隔符 句点 何允许 DataGridView | 更新日期: 2023-09-27 18:28:48
我有一个绑定到属性的DataGridViewTextBoxColumn。我想允许用户输入数字,无论他用什么来分隔小数。此外,我不需要空格或逗号来分隔千个。
很简单:
1.908=1.908
1908=1.908
如果无法指定格式字符串,我可以在绑定前替换(",",".")吗?或者其他方式?
谢谢。(对不起我的英语)
Crete将绑定到该列的另一个String类型的属性
然后通过该设置/读取原始属性的值
public class YourBindableItem
{
public decimal OriginalValue { get; set; }
public decimal ParsedValue
{
get { return this.OriginalValue.ToString(); }
set
{
string forParse =
value.Replace(",", Globalization.CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator);
decimal temp = 0;
if(decimal.TryParse(forParse,
out temp,
Globalization.CultureInfo.InvariantCulture) == true)
{
this.OriginalValue = temp;
}
//if value wasn't parsed succesfully, original value will be returned
this.RaiseOnPropertyChanged(nameOf(this.ParsedValue));
}
}
}
DataGridView
已经根据当前用户的区域设置进行了格式化,至少在数据绑定到对象数据源并且属性为数字(即不是string
)的情况下是这样。
您可以通过在Windows中打开Region and Language
并在例如English (United States)
格式和Swedish (Sweden)
格式之间切换来测试这一点。在前一种情况下,输入2.718
将正确解析,而在第二种情况下2,718
将正确解析。为了加载新的设置,您必须在VS中运行而不进行调试。
(如果你想这样做的话,我不建议尝试将逗号和句点解析为同一用户的十进制分隔符。这不是大多数用户的预期行为,如果用户碰巧也使用千位分隔符,这会导致错误。)