WPF MVVMLight: Actualizar DataGrid basado en SelectedItem de otro DataGrid

Desarrollando unWPF aplicación usandoMVVMLight.

MiModel consiste en unAttribute clase y unDataSet clase con unObservableCollection<Attribute> propiedad nombradaAttributes.

MiMainViewModel tiene unDataSet propiedad.

En miMainView que tiene esDataContext ajustado aMainViewModel tengo dosDataGrids. Uno tiene esItemsSource unido aDataSet.Attributes que funciona bien:

<DataGrid CanUserAddRows="false" AutoGenerateColumns="false" ItemsSource="{Binding DataSet.Attributes}">
//some DataGrid columns here

Quiero el segundoDataGrid para mostrar algunas propiedades adicionales basadas en elSelectedItem del primer DataGrid, así que hice lo siguiente:

1) agregó unSelectedAttribute propiedad de tipoAttribute en miMainViewModel:

private Attribute selectedAttribute;
public Attribute SelectedAttribute
{
    get { return selectedAttribute; }
    set
    {
        if (selectedAttribute == value)
        {
            return;
        }
        selectedAttribute = value;
        RaisePropertyChanged(() => SelectedAttribute);
    },
}

2) modifiqué mi primerDataGrid atar esSelectedItem aSelectedAttribute:

<DataGrid CanUserAddRows="false" AutoGenerateColumns="false" ItemsSource="{Binding DataSet.Attributes}" SelectedItem="{Binding SelectedAttribute}">

3)Actualización 1 selecciona elItemsSource del segundoDataGrid aSelectedAttribute y creó una columna vinculada a laCategories propiedad deSelectedAttribute que es unObservableCollection<string>:

<DataGrid SelectionMode="Single" EnableColumnVirtualization="True" AutoGenerateColumns="false" ItemsSource="{Binding Main.SelectedAttribute}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="categories" Width="auto" Binding="{Binding Main.SelectedAttribute.Categories}"  />                      
    </DataGrid.Columns>
</DataGrid>

4) en miMainViewModeluna vezDataSet.Attributes está poblado, configuro elSelectedAttribute al primeroAttribute en la colección (solo como prueba):

SelectedAttribute = DataSet.Attributes[0];

Una vez que ejecuto esto, el primeroDataGrid carga bien, pero no se selecciona ningún elemento y el segundoDataGrid no muestra nada ¿Qué estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta