WPF DataGridTemplateColumn com ligação ComboBox (padrão MVVM)

Estou enlouquecendo com o seguinte cenário WPF DataGrid + ComboBo

Tenho um conjunto de classes que se parece

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
}

Agora, meu resultado desejado é um DataGrid que mostra uma lista de linhas do tipoCas, e em uma das colunas, é uma ComboBox que permite ao usuário alterar o valor de House.HouseOwner.

Nesse cenário, o DataContext da grade é ViewModel.Houses e para a ComboBox, quero que o ItemsSource seja vinculado a ViewModel.Owner

Isso é possível? Estou ficando louco com isso ... o melhor que pude fazer é vincular corretamente o ItemsSource, no entanto, a ComboBox (dentro de um DataGridTemplateColumn) não está mostrando os valores corretos para House.HouseOwner em cada linh

NOTA: Se tirar a ComboBox da imagem e colocar um TextBlock no DataTemplate, posso ver corretamente os valores de cada linha, mas obter um ItemsSource e mostrar o valor correto na seleção não está funcionando para mim..

Dentro do meu código, configurei o DataContext na janela para ViewModel e na grade, o DataContext está definido como ViewModel.Houses. Para tudo, exceto esta caixa de combinação, está funcionando ...

Meu XAML para a coluna incorreta parece;

<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>

Gostaria de alguma ajuda sobre este ... parece que um pouco de vodu é necessário ...

questionAnswers(4)

yourAnswerToTheQuestion