until now I've never used a TreeView, but while learning, I came across a few samples. They all used data objects that contained a link to the object's children (opposite to your class). Such a structure can be bound to the "ItemsSource"-property in a HierarchicalDataTemplate. To me it looks very reasonable to use 'child-oriented' data, as the tree is accessed from the top.
If your question was not only based on theoretical interest, you might consider storing your data in an
X(ml)Document (or any other fitting structure) and use it as shown here
]. Maybe it's sufficient to add another member
public List<EmpCtg> Children;
to your class (as I said, I never used it myself).
Or you take a look at Simplifying the WPF TreeView...
] from Josh Smith here on CodeProject (worth the time - anyway).