Vincular largura da coluna DataGrid a duas colunas de outro DataGrid

Pergunta, questão: Como faço para vincularStatName.Width paraSamp1.ActualWidth + Samp2.ActualWidth?

Sub-perguntas:

Por que meuWidthConverter funções nunca executadas (pontos de interrupção nunca são atingidos)?

O que é certo<Binding ... sintaxe para os componentes individuais do MultiBinding?

O que eu tentei:

Eu acho que preciso atribuir oDataGridTextColumn.Width comMultiBinding e algum tipo de conversor.

Eu tentei montar uma solução de vários exemplos online. Parece que não consigo juntar tudo.

EDITAR

Com o uso<Binding ElementName="Samp1" Path="ActualWidth" />

Não há erros ou avisos de construção.oConvert função não é atingidaNenhuma mensagem relevante na saída

Com o uso<Binding Source="{x:Reference Samp1}" Path="ActualWidth" />

Erro de construção (que ainda permite a execução): a conversão especificada não é válida. Para<MultiBinding>...</MultiBinding>.Convert é chamado três vezes ao carregar. Não é chamado ao redimensionar a colunaSamp1.Em cada execução deConvert:

System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='40' MultiBindingExpression:target element is 'DataGridTextColumn' (HashCode=64879470); target property is 'Width' (type 'DataGridLength')

Tentativa de ligação múltipla (parte xaml)

<Page.Resources>
    <local:WidthConverter x:Key="WidthConverter" />
</Page.Resources>

<StackPanel>

    <DataGrid IsReadOnly="True" HeadersVisibility="Column">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="Samp1" Binding="{Binding a}" Header="S1" />
            <DataGridTextColumn x:Name="Samp2" Binding="{Binding b}" Header="S2" />
            <DataGridTextColumn x:Name="Total" Binding="{Binding c}" Header="Tot" />
        </DataGrid.Columns>
        <local:MyGenericRecord a="5000" b="2500" c="7500" />
        <local:MyGenericRecord a="1000" b="1500" c="2500" />
    </DataGrid>

    <DataGrid IsReadOnly="True" HeadersVisibility="Column">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="StatName"  Binding="{Binding a}" Header="Stat">
                <DataGridTextColumn.Width>
                    <MultiBinding Converter="{StaticResource WidthConverter}">
                        <Binding ElementName="Samp1" Path="ActualWidth" />
                        <Binding ElementName="Samp2" Path="ActualWidth" />
                    </MultiBinding>
                </DataGridTextColumn.Width>
            </DataGridTextColumn>
            <DataGridTextColumn x:Name="StatValue" Binding="{Binding b}" Header="Val" Width="{Binding ElementName=Total, Path=ActualWidth}" />
        </DataGrid.Columns>
        <local:MyGenericRecord a="Min" b="2500" />
        <local:MyGenericRecord a="Max" b="7500" />
        <local:MyGenericRecord a="Average" b="5000" />
    </DataGrid>

</StackPanel>

Tentativa de ligação múltipla (parte de código)

public class WidthConverter : IMultiValueConverter
{

    public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        double totalWidth = 0;

        foreach (DataGridLength Width in values)
            totalWidth += Width.Value;

        return totalWidth;
    }
    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
    {
        return null;
    }
}

questionAnswers(1)

yourAnswerToTheQuestion