Note: InvalidCastException in case of converting Char to Boolean. To reproduce: use the following code snippet: public Form1() { InitializeComponent(); DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(string)); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Active", typeof(string)); dt.Rows.Add("1", "Item1", "Y"); dt.Rows.Add("2", "Item2", "N"); this.radGridView1.DataSource = dt; this.radGridView1.Columns.RemoveAt(2); GridViewCheckBoxColumn checkBoxColumn = new GridViewCheckBoxColumn(); checkBoxColumn.FieldName = "Active"; checkBoxColumn.DataTypeConverter = new ToggleStateConverter(); radGridView1.MasterTemplate.Columns.Add(checkBoxColumn); radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; radGridView1.EnableFiltering = true; } public class ToggleStateConverter : TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return destinationType == typeof(ToggleState); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { string charValue = value + ""; switch (charValue) { case "Y": return ToggleState.On; case "N": return ToggleState.Off; case "M": return ToggleState.Indeterminate; } return base.ConvertTo(context, culture, value, destinationType); } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return sourceType == typeof(ToggleState); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { ToggleState state = (ToggleState)value; switch (state) { case ToggleState.On: return "Y"; case ToggleState.Off: return "N"; case ToggleState.Indeterminate: return "M"; } return base.ConvertFrom(context, culture, value); } } Try to filter by "Name" column. As a result FormatException occurs because of inability to convert "Y"/"N" to Boolean although a custom TypeConverter is implemented to handle it.