To reproduce: public Form1() { InitializeComponent(); BindingList<Item> items = new BindingList<Item>(); for (int i = 0; i < 30; i++) { if (i % 3 == 0) { items.Add(new Item(i,"Item" + i, IndeterminateBoolean.YesAndNo)); } else if (i % 3 == 1) { items.Add(new Item(i, "Item" + i, IndeterminateBoolean.Yes)); } else { items.Add(new Item(i, "Item" + i, IndeterminateBoolean.No)); } } this.radGridView1.DataSource = items; GridViewCheckBoxColumn checkBox = new GridViewCheckBoxColumn("CheckBoxCol"); checkBox.DataTypeConverter = new IndeterminateBooleanToggleStateConverter(); checkBox.FieldName = "IsActive"; checkBox.ThreeState = true; this.radGridView1.Columns.Add(checkBox); this.radGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; this.radGridView1.EnableFiltering = true; this.radGridView1.ShowHeaderCellButtons = true; this.radGridView1.ShowFilteringRow = false; } public class Item { public int Id { get; set; } public string Name { get; set; } public IndeterminateBoolean IsActive { get; set; } public Item(int id, string name, IndeterminateBoolean isActive) { this.Id = id; this.Name = name; this.IsActive = isActive; } } public enum IndeterminateBoolean { No, Yes, YesAndNo } public class IndeterminateBooleanToggleStateConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { return sourceType == typeof(ToggleState); } public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { return destinationType == typeof(ToggleState); } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is ToggleState) { switch ((ToggleState)value) { case ToggleState.On: return IndeterminateBoolean.Yes; case ToggleState.Off: return IndeterminateBoolean.No; case ToggleState.Indeterminate: default: return IndeterminateBoolean.YesAndNo; } } else { return base.ConvertFrom(context, culture, value); } } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(ToggleState)) { if (value is IndeterminateBoolean) { switch ((IndeterminateBoolean)value) { case IndeterminateBoolean.Yes: return ToggleState.On; case IndeterminateBoolean.No: return ToggleState.Off; case IndeterminateBoolean.YesAndNo: default: return ToggleState.Indeterminate; } } if (value is string) { switch (((string)value ?? string.Empty).Trim()) { case "Yes": return ToggleState.On; case "No": case "": return ToggleState.Off; case "Both": default: return ToggleState.Indeterminate; } } else { return base.ConvertTo(context, culture, value, destinationType); } } else { return base.ConvertTo(context, culture, value, destinationType); } } } Workaround: use the custom filtering functionality: http://docs.telerik.com/devtools/winforms/gridview/filtering/custom-filtering You can access the RadGridView.FilterDescriptors collection and according to the FilterDescriptor.Expression property to determine whether the row will be visible or not.