gpt4 book ai didi

wpf - DataGrid RowDetails 宽度问题

转载 作者:行者123 更新时间:2023-12-04 12:42:16 42 4
gpt4 key购买 nike

假设我有一个像这样定义的 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 上设置 Width 或 MaxWidth。不是很动态。
  • 在 DataGrid 上设置 ScrollViewer.Horizo​​ntalScrollBarVisibility="Disabled"。当列不适合时不太好。
  • 最佳答案

    这里的答案感觉像是一种解决方法,所以我做了一些研究,并在 Telerik 论坛上找到了解决方案,因为我们使用了他们的 RadGridView。结果证明该解决方案也适用于 DataGrid。

    关键是将 ScrollViewer.Horizo​​ntalScrollBarVisibility 属性设置为 Disabled,请参见下面的示例。

    <DataGrid ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <DataGrid.RowDetailsTemplate>
    <DataTemplate>
    <Border>
    <TextBlock Foreground="White" Text="{Binding RowDetails}"
    TextWrapping="Wrap"/>
    </Border>
    </DataTemplate>
    </DataGrid.RowDetailsTemplate>

    编辑:
    一个副作用是,如果列需要更多的水平空间而不是它们将被剪裁的空间。因此,如果这是一个问题,那么此解决方案不是最佳的。

    关于wpf - DataGrid RowDetails 宽度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4210480/

    42 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com