WPF DataGrid:具有固定小数位的数字列

WPF DataGrid: numeric columns with fixed decimals positions

我在为 DataGrid(WPF,而不是 Forms DataGridView)中显示的某些数据获取正确的可视化时遇到问题。

我正在加载我的数据表,其中包含一些数字列。有些值有小数部分,有些则没有,例如 2 、2.5、10 等。 我所看到的是 DataGrid 仅在必要时自动显示小数位,因此“5”的显示方式与“5”一样。出于可读性目的,我想将所有数字格式化为一位小数。我尝试使用 Format(myNumber, "0.0"),但是这个 return 是一个字符串:问题是排序,它没有按预期执行(这样它的排序就像字符串,而不是数字)。

有什么想法吗?有人已经遇到过这个问题吗?

试试这个:

XAML:

<DataGridTextColumn Binding="{Binding myNumber, StringFormat=N0}" Header="price"/>

StringFormat=N05.00 转换为 5 如果要显示一个位置,请使用 N1 显示 5.0 .

代码隐藏:

myNumber.ToString("N0");

我终于解决了这个问题。

问题是我必须在代码中生成列。我的 DataGrid 设置为 AutoGenerateColumns=True.

然后我添加了这段代码:

Private Sub DataGrid_OnAutoGeneratingColumn(sender As Object, e As DataGridAutoGeneratingColumnEventArgs) Handles DataGrid.AutoGeneratingColumn
    If e.PropertyType = GetType(Date) Then
        TryCast(e.Column, DataGridTextColumn).Binding.StringFormat = "yyyy/MM/dd HH:mm:ss"
    End If
End Sub

通过这种方式,我可以轻松地根据用户的喜好调整日期格式。