C# 是否可以在DataGridView int列中显示空字符串而不是0?
我有一个数据表,里面有关于音轨的信息。存储曲目编号的DataTableColumn是UInt32类型,因此当我在DataGridView中显示DataTable时,我能够按该列对数据进行排序。对于没有曲目编号的曲目,我在DataTable中得到了0C# 是否可以在DataGridView int列中显示空字符串而不是0?,c#,datagridview,C#,Datagridview,我有一个数据表,里面有关于音轨的信息。存储曲目编号的DataTableColumn是UInt32类型,因此当我在DataGridView中显示DataTable时,我能够按该列对数据进行排序。对于没有曲目编号的曲目,我在DataTable中得到了0 data.Tables["active"].Columns["Track"].DataType = Type.GetType("System.UInt32"); 是否可以在DataGridView中将该列中的每个0显示为空字符串(无)?但仍将其作为
data.Tables["active"].Columns["Track"].DataType = Type.GetType("System.UInt32");
是否可以在DataGridView中将该列中的每个0显示为空字符串(无)?但仍将其作为UInt32 0存储在数据表中,以便能够对曲目进行排序?只是一个小建议。。。使用“System.String”添加另一列,并使其值等于Track column(隐藏Track column),然后您可以在新的可见列中将0替换为空字符串当然,您可以使用
CellFormatting
事件:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "Track")
{
uint value = (uint)e.Value;
if (value == 0)
{
e.Value = string.Empty;
e.FormattingApplied = true;
}
}
}
如果其他人感兴趣,我稍微修改了代码,使其不依赖于列名:
If(dataGridView.Columns[e.ColumnIndex].ValueType==Type.GetType(“System.UInt32”)
{//Thomas's code}@joudiekjouda,您应该使用typeof(UInt32)
而不是Type.GetType(“System.UInt32”)
…@Thomas Levesque:线程巫术。应该可以用一个数据模板来实现这一点,对吗?如果是这样,你知道怎么做吗?@SezMe,这是WinForms,不是WPF。。。没有模板;)