DUI: open one class for one category

# Preface
Avoid situations presented on screenshot. Can be opened just one Class in one Category.
![image](https://cloud.githubusercontent.com/assets/8158404/4900112/f9dcf9fe-6422-11e4-90e4-7d6d275c8c9c.png)

# Solution
I think we need `IsSelected` property, that would be bound in two way mode. That's what I've done...

# Reviewers
@Benglin ,@vmoyseenko, please take a look.

Link to YouTrack:
[MAGN-5272](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5272) DUI: For one category on class can be opened at the point
Thanks for writing these comments. I would suggest the following tweaks:

```csharp
/// <summary>
/// Call this method to find child elements in a visual tree of a specific type,
/// given the parent visual element.
/// </summary>
/// <param name="parent">The parent visual element from which child visual elements 
/// are to be located.</param>
/// <typeparam name="T">The type of child visual element to look for.</typeparam>
/// <param name="childName">The name of child element to look for. This value can 
/// be an empty string if child element name is not a search criteria.</param>
/// <returns>Returns a list of child elements that match the search criteria, or 
/// an empty list if none is found.</returns>
public static IEnumerable<T> FindChildren<T>(DependencyObject parent, string childName)
{
    var foundChildren = new List<T>();
    if (parent == null)
        throw new ArgumentNullException("parent");

    // ...

    return foundChildren;
}
```