Hi Stephen,
The custom sorting and filtering operation for RadTreeView control is available in Q3 2011 SP1 which we have just released. In this version you can write a custom comparer:
public
SortedTreeView()
{
InitializeComponent();
for
(
int
i = 0; i < 100; i++)
{
RadTreeNode radTreeNode =
new
RadTreeNode(i.ToString());
radTreeView1.Nodes.Add(radTreeNode);
}
for
(
int
i = 0; i < 100; i++)
{
for
(
int
j = 0; j < 10; j++)
{
RadTreeNode radTreeNode =
new
RadTreeNode(i.ToString() +
"-"
+ j.ToString());
radTreeView1.Nodes[i].Nodes.Add(radTreeNode);
}
}
radTreeView1.TreeViewElement.Comparer =
new
MyComparer(
this
.radTreeView1.TreeViewElement);
}
private
bool
FilterNode(RadTreeNode node)
{
if
(node.Text.Length > 1)
{
return
true
;
}
return
false
;
}
private
void
radButton1_Click(
object
sender, EventArgs e)
{
//radTreeView1.SelectedNode.Remove();
this
.radTreeView1.Filter =
"Custom"
;
if
(radTreeView1.SortOrder == SortOrder.None)
{
radTreeView1.SortOrder = SortOrder.Ascending;
}
else
if
(radTreeView1.SortOrder == SortOrder.Ascending)
{
radTreeView1.SortOrder = SortOrder.Descending;
}
else
{
radTreeView1.SortOrder = SortOrder.None;
}
}
class
MyComparer : TreeNodeComparer
{
public
MyComparer(RadTreeViewElement treeView)
:
base
(treeView)
{
}
public
override
int
Compare(RadTreeNode x, RadTreeNode y)
{
if
(
this
.TreeViewElement.SortOrder == SortOrder.Descending)
{
return
x.Text.CompareTo(y.Text);
}
return
x.Text.CompareTo(y.Text) * -1;
}
}
I hope this helps.
Regards,
Julian Benkov
the Telerik team
Q3’11 of RadControls for WinForms is available for
download (see
what's new).
Get it today.