WPF DataGrid 子级垂直滚动

WPF DataGrid Children Vertical Scrolling

大家好!

我正在进行的项目的第一步已经完成。但是,现在 XAML 结构中出现了一个新问题。

我想弄清楚我希望如何最好地呈现我的数据。目前,我认为使用 DataGrid 比较合适,因为绑定功能强大,而且 DataGrid 会根据我的对象列表适当地填充项目。但是,垂直滚动条似乎只出现在整个行中,而不是数据列内的行 - 我的第二个数据列可以有一个长文本块!

我对 WPF 的世界还很陌生,所以我很感激任何意见!下面是我的 window XAML 代码:

<Window x:Class="_puffDisplay.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_puffDisplay"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ScrollViewer VerticalScrollBarVisibility="Auto">
        <DataGrid Name ="puffCoreView" HorizontalAlignment="Left" Height="400" Margin="10,10,0,0" VerticalAlignment="Top" Width="774" ItemsSource="{Binding}" 
                  IsReadOnly="True"
                  AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header= "Puff #" Width="350" Binding="{Binding PuffNumber}"/>
                <DataGridTextColumn Header="Puff Data" Width="350" Binding="{Binding Data}" ScrollViewer.VerticalScrollBarVisibility="Visible">

                </DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
        </ScrollViewer>

我需要了解如何允许用户在每行的第二列以及整个行内垂直滚动。有什么建议吗?

使用带有 ScrollViewer 和 TextBlock 的 DataGridTemplateColumn 而不是 DataGridTextColumn。这是一种可能性...

            <DataGridTemplateColumn Header="Puff Data" Width="350">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ScrollViewer MaxHeight="100">
                            <TextBlock Text="{Binding Data}" TextWrapping="Wrap"/>
                        </ScrollViewer>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>