Binding ItemsSource de uma ComboBoxColumn no WPF DataGrid

Tenho duas classes simples de modelo e um ViewModel ...

public class GridItem
{
    public string Name { get; set; }
    public int CompanyID { get; set; }
}

public class CompanyItem
{
    public int ID { get; set; }
    public string Name { get; set; }
}

public class ViewModel
{
    public ViewModel()
    {
        GridItems = new ObservableCollection<GridItem>() {
            new GridItem() { Name = "Jim", CompanyID = 1 } };

        CompanyItems = new ObservableCollection<CompanyItem>() {
            new CompanyItem() { ID = 1, Name = "Company 1" },
            new CompanyItem() { ID = 2, Name = "Company 2" } };
    }

    public ObservableCollection<GridItem> GridItems { get; set; }
    public ObservableCollection<CompanyItem> CompanyItems { get; set; }
}

... e uma janela simples:

<Window x:Class="DataGridComboBoxColumnApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding GridItems}" >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Name}" />
                <DataGridComboBoxColumn ItemsSource="{Binding CompanyItems}"
                                    DisplayMemberPath="Name"
                                    SelectedValuePath="ID"
                                    SelectedValueBinding="{Binding CompanyID}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

O ViewModel está definido como @ da MainWindDataContext em App.xaml.cs:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        MainWindow window = new MainWindow();
        ViewModel viewModel = new ViewModel();

        window.DataContext = viewModel;
        window.Show();
    }
}

Como você pode ver, defino oItemsSource do DataGrid para oGridItems coleção do ViewModel. Esta parte funciona, a única linha da grade com o nome "Jim" é exibid

Também quero definir oItemsSource da ComboBox em todas as linhas doCompanyItems coleção do ViewModel. Esta parte não funciona: A ComboBox permanece vazia e, na janela Saída do depurador, vejo uma mensagem de erro:

System.Windows.Data Erro: 2: Não é possível localizar FrameworkElement ou FrameworkContentElement que regem o elemento de destino. BindingExpression: Path = CompanyItems; DataItem = nulo; o elemento de destino é 'DataGridComboBoxColumn' (HashCode = 28633162); propriedade de destino é 'ItemsSource' (tipo 'IEnumerable')

Acredito que o WPF esperaCompanyItems para ser uma propriedade deGridItem, que não é o caso, e é por isso que a ligação falh

Eu já tentei trabalhar com umRelativeSource eAncestorType igual a

<DataGridComboBoxColumn ItemsSource="{Binding CompanyItems, 
    RelativeSource={RelativeSource Mode=FindAncestor,
                                   AncestorType={x:Type Window}}}"
                        DisplayMemberPath="Name"
                        SelectedValuePath="ID"
                        SelectedValueBinding="{Binding CompanyID}" />

Mas isso me dá outro erro na saída do depurador:

Erro System.Windows.Data: 4: Não é possível encontrar a origem da ligação com a referência 'RelativeSource FindAncestor, AncestorType =' System.Windows.Window ', AncestorLevel =' 1 ''. BindingExpression: Path = CompanyItems; DataItem = nulo; o elemento de destino é 'DataGridComboBoxColumn' (HashCode = 1150788); propriedade de destino é 'ItemsSource' (tipo 'IEnumerable')

Pergunta: Como posso vincular o ItemsSource do DataGridComboBoxColumn à coleção CompanyItems do ViewModel? É possível de alguma forma

Obrigado pela ajuda antecipadamente!