Workaround: public RadForm1() { InitializeComponent(); this.radDataFilter1.NodeFormatting += radDataFilter1_NodeFormatting; this.radDataFilter1.Editing += radDataFilter1_Editing; } private void radDataFilter1_Editing(object sender, TreeNodeEditingEventArgs e) { e.Cancel = e.Editor is DataFilterCheckboxEditor; } private void radDataFilter1_NodeFormatting(object sender, TreeNodeFormattingEventArgs e) { DataFilterCriteriaElement nodeElement = e.NodeElement as DataFilterCriteriaElement; if (nodeElement != null) { nodeElement.ValueElement.DrawText = true; if (nodeElement.ValueElement.Children.Count == 0) { if (nodeElement.FieldElement.Text == "Discontinued") { RadCheckBoxElement checkBox = new RadCheckBoxElement(); nodeElement.ValueElement.Children.Add(checkBox); checkBox.Alignment = ContentAlignment.MiddleCenter; checkBox.CheckStateChanged += checkBox_CheckStateChanged; checkBox.StretchHorizontally = false; nodeElement.ValueElement.DrawText = false; } } else { RadCheckBoxElement checkBox = nodeElement.ValueElement.FindDescendant<RadCheckBoxElement>(); if (checkBox != null && nodeElement.FieldElement.Text != "Discontinued") { nodeElement.ValueElement.Children.Remove(checkBox); } else { nodeElement.ValueElement.DrawText = false; } } } } private void checkBox_CheckStateChanged(object sender, EventArgs e) { RadCheckBoxElement checkBox = sender as RadCheckBoxElement; DataFilterCriteriaElement criteriElement = checkBox.Parent.FindAncestor<DataFilterCriteriaElement>(); criteriElement.CriteriaNode.Descriptor.Value = checkBox.IsChecked; }