I want the zeroes, '0', in the DataGridView to appear invisible without changing the actual value in the datasource (which is a DataTable). Is there a way to do this automatically (say tinker a property or implement an interface)? I'm trying to avoid creating a loop to check and alter every cell.
Somebody suggested that I should be able to subclass the DataGridViewTextBoxCell and control how it "displays" its contents.
Unfortunately, I'm still at lose on how to implement it. I tried this, but it didn't work:
public class DataGridViewTextBoxCellZeroless : DataGridViewTextBoxCell
{
public DataGridViewTextBoxCellZeroless() {}
private object _value;
public override object Clone()
{
return base.Clone();
}
public new object Value
{
get { return _value; }
set
{
if (value != null && value.ToString() == "0")
_value = null;
else
_value = value;
}
}
}
...
DataGridViewCell cell = new DataGridViewTextBoxCellZeroless();
//col1 is a column in my DataGridView
col1.CellTemplate = cell;
...
I figure the Value property is not exactly the one being displayed. Any suggestion would be helpful.