Xceed WPF propertyGrid show item for expanded collection
<p>How, do I display a <code>ObservableCollection&lt;&gt;</code> of custom objects in the Xceed WPF PropertyGrid in which each List Item can be expanded to display the custom objects properties. (ie:</p>

<p>----PropertyGrid-----</p>

<p>CoreClass</p>

<ul>
<li><p>(+/-) ObservableCollection&lt; CustomClass ></p>

<ul>
<li><p>(+/-) CustomClass.Object1</p>

<ul>
<li><p>Property1: Value</p></li>
<li><p>Property2: Value</p></li>
<li><p>…</p></li>
<li><p>PropertyN: Value</p></li>
</ul></li>
<li><p>(+/-) CustomClass.Object2</p>

<ul>
<li><p>Property1: Value</p></li>
<li><p>Property2: Value</p></li>
<li><p>…</p></li>
<li><p>PropertyN: Value</p></li>
</ul></li>
</ul></li>
</ul>

<p>If I use <code>[ExpandableObject]</code> on the <code>ObservableCollection&lt;&gt;</code> it only shows the Counts property.</p>

<p><strong>Edit:</strong>(Added code)</p>

<p>MainWindow.xaml:</p>

<pre><code>&lt;Window x:Class="PropGridExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:PropGridExample"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525"&gt;
    &lt;Grid&gt;
        &lt;xctk:PropertyGrid x:Name="PropertyGrid" SelectedObject="{Binding BindingItem}"&gt;&lt;/xctk:PropertyGrid&gt;
    &lt;/Grid&gt;
&lt;/Window&gt;
</code></pre>

<p>MainWindow.xaml.cs</p>

<pre><code>public partial class MainWindow : Window
{
    public MainWindow()
    {
        MainWindowViewModel mwvm = new MainWindowViewModel();
        this.DataContext = mwvm;
        InitializeComponent();
    }
}
</code></pre>

<p>MainWindowViewModel.cs</p>

<pre><code>public class MainWindowViewModel
{
    public Item BindingItem { get; set; }

    public MainWindowViewModel()
    {
        BindingItem = new Item();
    }

    public class Item
    {
        public int ID { get; set; }
        [ExpandableObject()]
        public ObservableCollection&lt;CustomClass&gt; Classes { get; set; }

        public Item()
        {
            ID = 1;
            Classes = new ObservableCollection&lt;CustomClass&gt;();
            Classes.Add(new CustomClass() { Name = "CustomFoo" });
        }
    }

    public class CustomClass
    {
        public string Name { get; set; }
        [ExpandableObject()]
        public ObservableCollection&lt;type&gt; Types { get; set; }

        public CustomClass()
        {
            Types = new ObservableCollection&lt;type&gt;();
            Types.Add(new type() { name = "foo", value = "bar" });
            Types.Add(new type() { name = "bar", value = "foo" });
        }
    }

    public class type
    {
        public string name { get; set; }
        public string value { get; set; }
    }
}
</code></pre>