Control de acceso entre DataGridCells, ComboBox dinámicos en cascada

Tengo un DataGrid que dos de sus columnas son cuadros combinados (uno contiene pocos pero este no es el problema).

Quiero que cuando el usuario cambie el primer valor del Combo, el ComboBox en la otra columna se una a su propiedad (esta propiedad es una colección). Digamos que First ComboBox es Category, quiero que cuando el usuario cambie su valor, el otro CB se complete con los valores de (categoría seleccionada del primer combo) .Vendors.

¿Cómo debo hacerlo? No uso MVVM, solo WPF simple. No sé cuál debería ser la forma correcta de implementarlo, espero haberlo comenzado bien.

Creo que si pudiera obtener el otro ComboBox (que se encuentra en un DataGridCell diferente) del SelectionChangeHandler del primero, sería lo mejor, porque entonces puedo restablecer su fuente en cada cambio de selección del primero. Tenga en cuenta que tengo la capacidad de llegar al DataGridCell actual (el primero), solo estoy buscando una forma eficiente de acceder al hermano DataGridCell correcto y luego obtener su combo secundario (segundo).

También tenga en cuenta que la categoría seleccionada debe variar de fila a fila, y el segundo ComboBox debe depender de la categoría de esta fila.
De hecho, intenté implementarlo para que CollectionViewSource.Source esté vinculado al elemento actual (es decir, el DataContext de la fila) pero no parece funcionar.
Prefiero configurar el CollectionViewSource (VendorsCollection) del segundo combo a través de un desencadenador o controlador de Acción en el 1stChange's SelectionChange.

Los otros ComboBoxes en ese campo no parecen causar problemas, ya que todos están vinculados entre sí, podría usar CollectionViewSource.Filter, de todos modos no es un problema acceder a ellos, ya que son hermanos simples, no como el primero. que es un primo lejano ubicado en lo profundo de otro DataGridCell.

Esto es lo que probé hasta ahora:

<DataGrid>
    <DataGrid.Resources>
        <CollectionViewSource x:Key="CategoriesCollection" Source="{Binding Context.CategoriesList, Source={x:Static Application.Current}, IsAsync=True}" />
    </DataGrid.Resources>

    <DataGrid.Columns>

        <DataGridTemplateColumn Header="Category">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock DataContext="{Binding Category}" Text="{Binding Title}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <!--This is the first ComboBox-->
                    <ComboBox
                                IsSynchronizedWithCurrentItem="False"
                                ItemsSource="{Binding Source={StaticResource CategoriesCollection}}"
                                DisplayMemberPath="Title"
                                SelectionChanged="cbCategories_SelectionChanged"
                                SelectedItem="{Binding Category}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>

        <DataGridTemplateColumn Header="Style">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock DataContext="{Binding Finish.Style.Vendor}" Text="{Binding Contact.Title}"/>
                        <TextBlock DataContext="{Binding Finish.Style}" Text="{Binding Title}"/>
                        <TextBlock Text="{Binding Finish.Title}"/>
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            <DataGridTemplateColumn.CellEditingTemplate>
                <DataTemplate>
                    <StackPanel>
                        <StackPanel.Resources>
                            <!--I want, that when the user selects a value in the first ComboBox,
                    the VendorsCollection below should be populated with the selected Category.Vendors,
                    or alternatively current row's data item.Category.Vendors,
                    I just donno how to access current row from these resources.-->
                            <CollectionViewSource x:Key="VendorsCollection" Source="{Binding Vendors, Source={StaticResource CategoriesCollection}}" />
                            <CollectionViewSource x:Key="StylesCollection" Source="{Binding Styles, Source={StaticResource VendorsCollection}}" />
                            <CollectionViewSource x:Key="FinishesCollection" Source="{Binding Finishes, Source={StaticResource StylesCollection}}" />
                        </StackPanel.Resources>
                        <ComboBox                                                       
                                    IsSynchronizedWithCurrentItem="True"
                                    ItemsSource="{Binding Source={StaticResource VendorsCollection}}"
                                    SelectedItem="{Binding Finish.Style.Vendor}"
                                    DisplayMemberPath="Contact.Title"/>
                        <ComboBox
                                    IsSynchronizedWithCurrentItem="True"
                                    ItemsSource="{Binding Source={StaticResource StylesCollection}}"
                                    SelectedItem="{Binding Finish.Style}"
                                    DisplayMemberPath="Title"/>
                        <ComboBox
                                    IsSynchronizedWithCurrentItem="True"
                                    ItemsSource="{Binding Source={StaticResource FinishesCollection}}"
                                    SelectedItem="{Binding Finish}"
                                    DisplayMemberPath="Title"/>
                    </StackPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellEditingTemplate>
        </DataGridTemplateColumn>

    </DataGrid.Columns>
</DataGrid>

Respuestas a la pregunta(1)

Su respuesta a la pregunta