WPF DataGridTemplateColumn con ComboBox Binding (patrón MVVM)

Me estoy volviendo loco con el siguiente escenario WPF DataGrid + ComboBox.

Tengo un conjunto de clases que se parecen a:

class Owner
{
    int ID { get; }
    string Name { get; }

    public override ToString()
    { 
        return this.Name;
    }
}

class House
{
    int ID { get; }
    Owner HouseOwner { get; set; }
}

class ViewModel
{
    ObservableCollection<Owner> Owners;
    ObservableCollection<House> Houses
}

Ahora mi resultado deseado es un DataGrid que muestra una lista de filas de tipoCas, y en una de las columnas, hay un ComboBox que permite al usuario cambiar el valor de House.HouseOwner.

En este escenario, el DataContext para la cuadrícula es ViewModel.Houses y para el ComboBox, quiero que ItemsSource esté vinculado a ViewModel.Owners.

¿Es esto posible? Me estoy volviendo loco con esto ... lo mejor que he podido hacer es obtener correctamente el enlace de ItemsSource, sin embargo, ComboBox (dentro de DataGridTemplateColumn) no muestra los valores correctos para House.HouseOwner en cada fila.

NOTA: si saco el cuadro combinado de la imagen y coloco un TextBlock en DataTemplate, puedo ver correctamente los valores de cada fila, pero obtener tanto ItemsSource como mostrar el valor correcto en la selección no funciona yo..

Dentro de mi código, configuré el DataContext en la ventana en ViewModel y en la cuadrícula, el DataContext se establece en ViewModel.Houses. Para todo excepto este cuadro combinado, está funcionando ...

Mi XAML para la columna ofensiva se ve así;

<DataGridTemplateColumn Header="HouseOwner">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Path=DataContext.Owners, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
                        DisplayMemberPath="Name"
                        SelectedItem="{Binding HouseOwner, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
                        SelectedValue="{Binding HouseOwner.ID, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Mode=OneWay}"
                        SelectedValuePath="ID" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Me encantaría un poco de ayuda en este ... parece que se requiere un poco de vudú aunque ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta