I Made a Custom Control to use for Converting the Fields which value is Int in database to corresponding Title Value. For example “Male�, ��& “Female�, ��br>
for this :
-------------------------------
public class EnumCell : DataGridViewTextBoxCell
{
public EnumCell(){}
protected override object GetFormattedValue(object value, int rowIndex, ref DataGridViewCellStyle cellStyle, System.ComponentModel.TypeConverter valueTypeConverter, System.ComponentModel.TypeConverter formattedValueTypeConverter, DataGridViewDataErrorContexts context)
{
string Title = string.Empty;
EnumColumn enumColumn = OwningColumn as EnumColumn;
Title = enumColumn.Collection.Single(c => c.Value == (string)value).Title;
return Title;
}
---------------------------------
public class EnumColumn : DataGridViewColumn
{
public EnumColumn(): base(new EnumCell())
{
}
private List<Fieldvalue> M_Collection;
public List<Fieldvalue> Collection
{
get{
return M_Collection;
}
set
{
M_Collection = value;
}
}
public override object Clone()
{
EnumColumn column = base.Clone() as EnumColumn;
column.Collection = M_Collection;
return column;
}
public override DataGridViewCell CellTemplate
{
get
{
return base.CellTemplate;
}
set
{
if ((value == null) || !(value is EnumCell))
{
throw new ArgumentException("Invalid" +
" cell type, EnumColumn " +
"can only contain EnumCell");
}
}
}
}
---------------------
And Also A class for Value And Title
public class Fieldvalue
{
public Fieldvalue()
{}
public string Value { get; set; }
public string Title { get; set; }
}
----------------------------
The problem is I can not set the Collection Property Of My EnumClass in the Disgner so it is null and i get null exeption errror during Loading Data in datagridview.
although if i use an Enum I can set it in the desigmer but i dont want to use enum.
am i doing something wrong?
So Thanks Inadvance
Alimardani