大家好!
我正在进行的项目的第一步已经完成。但是,现在,我在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>
我需要了解如何允许用户垂直滚动每行第二列以及整个行。有什么建议吗?
答案 0 :(得分:1)
使用带有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>