Проблема ширины RowDetails DataGrid

Предположим, у меня есть DataGrid, который определен следующим образом

<DataGrid AreRowDetailsFrozen="True"
          ItemsSource="{Binding MyCollection}"
          AutoGenerateColumns="False">
    <DataGrid.RowDetailsTemplate>
        <DataTemplate>
            <Border CornerRadius="5" BorderBrush="Red"
                    BorderThickness="2" Background="Black">
                <TextBlock Foreground="White" Text="{Binding RowDetails}"
                           TextWrapping="Wrap"/>
            </Border>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
    <DataGrid.Columns>
        <DataGridTextColumn Header="0" Binding="{Binding Value1}"/>
        <DataGridTextColumn Header="1" Binding="{Binding Value2}"/>
        <DataGridTextColumn Header="2" Binding="{Binding Value3}"/>
        <DataGridTextColumn Header="3" Binding="{Binding Value4}"/>
    </DataGrid.Columns>
</DataGrid>

и выглядит так с RowDetails и без него

alt text

На рисунке справа у меня очень длинный DataGridRow который никогда не заворачивается.
Можно ли заставить RowDetails использовать ту же ширину, что и DataGrid, и не влиять на саму ширину?

Вещи, которые я пробовал, достигается оберткой, но не удовлетворительным образом

  • Установить ширину или максимальную ширину на границе или TextBlock. Не очень динамично.
  • Установите ScrollViewer.HorizontalScrollBarVisibility = "Disabled" в DataGrid. Не очень хорошо, когда столбцы не помещаются.
13
задан Fredrik Hedblad 30 August 2011 в 05:59
поделиться