You are trying to abuse the list, suggesting wrong replacement of structure with some alignment stuff using specially formatting string. This is called "fooling yourself". If you succeeded, how would you tell categories of different levels, also by text?
No, if you have categories and subcategories, this is a tree structure. If you have a tree structure, use a tree view. My guess is that you are using
System.Web.UI.WebControls
(why, why don't you properly tag what are you talking about in your question? there are different types with the same (non-qualifying names); it makes answering tricky? why asking this way?! proper tagging would take a couple of extra seconds, and not doing so wasted my time… why?!), so you could use
System.Web.UI.WebControls.TreeView
, and it has the property
System.Web.UI.WebControls.TreeView.ShowCheckBoxes
and the means to manipulate those check boxes:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.treeview.showcheckboxes.aspx[
^].
—SA