Como posso fazer com que minhas colunas da grade sempre tenham a mesma largura?

Se eu definir a largura da coluna como*, eles têm a mesma largura inicialmente, mas se um item for maior que o valor permitido, ele aumentará a largura da colun

omo posso forçar minha grade a manter suas colunas do mesmo tamanho com a definição explícita de um tamanh

Eu não posso usar um UniformGrid porque esta Grade está sendo usada em um ItemsControl e os Itens precisam ser colocados emGrid.Row/Grid.Column ponto

Edita Aqui está uma amostra do meu código atual.

<DockPanel>

    <!-- Not showing code here for simplicity -->
    <local:ColumnHeaderControl DockPanel.Dock="Top" />
    <local:RowHeaderControl DockPanel.Dock="Left" />

    <ItemsControl ItemsSource="{Binding Events}">
        <ItemsControl.ItemContainerStyle>
            <Style>
                <Setter Property="Grid.Column" 
                        Value="{Binding DueDate.DayOfWeek, 
                            Converter={StaticResource EnumToIntConverter}}" />
            </Style>
        </ItemsControl.ItemContainerStyle>

        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                </Grid>
            </ItemsPanelTemplate>
        </ItemsPanel>
    </ItemsControl>

</DockPanel>

Edit # 2 Aqui está a minha solução final. Torna as colunas do tamanho correto e mantém o tamanho correto quando o aplicativo é redimensionad

<ColumnDefinition Width="{Binding 
    ElementName=RootControl, 
    Path=ActualWidth, 
    Converter={StaticResource MathConverter}, 
    ConverterParameter=(@VALUE-150)/7}" />

150 é a largura dos cabeçalhos das linhas + todas as margens e bordas. Na verdade, estou no processo de atualizar meuMathConverter para umIMultiValueConverter para vincular os dois parâmetros (se você estiver interessado no código do conversor, ele pode ser encontradoaqu, embora seja apenas o conversor de valor único)

questionAnswers(5)

yourAnswerToTheQuestion