Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据网格子项垂直滚动_C#_Wpf_Datagrid_Scrollviewer_Vertical Scrolling - Fatal编程技术网

C# WPF数据网格子项垂直滚动

C# WPF数据网格子项垂直滚动,c#,wpf,datagrid,scrollviewer,vertical-scrolling,C#,Wpf,Datagrid,Scrollviewer,Vertical Scrolling,大家好 我正在进行的项目的第一步已经完成。然而,现在我看到了XAML结构中的一个新问题 我正试图弄清楚我希望如何最好地展示我的数据。目前,我认为使用DataGrid是合适的,因为绑定功能强大,DataGrid根据我的对象列表适当地填充项目。但是,垂直滚动条似乎只显示所有行,而不是数据列中的行,而且我的第二个数据列可能有一个很长的文本块 我对WPF的世界还很陌生,所以我非常感谢大家的意见!下面是我的窗口XAML代码: <Window x:Class="_puffDisplay.MainWin

大家好

我正在进行的项目的第一步已经完成。然而,现在我看到了XAML结构中的一个新问题

我正试图弄清楚我希望如何最好地展示我的数据。目前,我认为使用DataGrid是合适的,因为绑定功能强大,DataGrid根据我的对象列表适当地填充项目。但是,垂直滚动条似乎只显示所有行,而不是数据列中的行,而且我的第二个数据列可能有一个很长的文本块

我对WPF的世界还很陌生,所以我非常感谢大家的意见!下面是我的窗口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>


绝对做到了!非常感谢。附带问题:有没有建议让每个DataGrid列单独选择?我希望能够从单个单元格复制和粘贴数据,如果你知道我的意思的话!还有,你看过这个帖子吗?我尝试通过“Torvin”实现建议的代码,以使文本块中的文本可选择,但到目前为止,我没有看到文本突出显示。这是意料之中的吗?@KieranOjakangas不,我没有看到那篇帖子。我不明白。如果您想要可选文本,最明显的方法是使用文本框。