WPF DataGrid 行标题可见性错误
我正在使用 DataGrid 来显示多个字段,其中之一是多行描述。网格显示数据很好,直到我尝试通过设置 HeadersVisibility="Column"
隐藏标题行。标题行消失,但当我滚动时,某些随机行的行标题会重新出现。
我已将其范围缩小到显示多行描述的列。只要我离开此专栏,那么我就不会遇到这个问题。我尝试用 "\r\n"
和 "\n"
分隔行,但都不起作用。 DataGrid 支持多行文本字段吗?
下面的图片显示了正在发生的情况以及我用于创建网格的 XAML。
<DataGrid DataContext="{StaticResource personRepository}"
ItemsSource="{Binding PersonList, Mode=OneWay}"
AutoGenerateColumns="False"
HeadersVisibility="Column"
CanUserSortColumns="False"
SelectionMode="Extended"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Width="80" Binding="{Binding Id, Mode=OneWay}" />
<DataGridTextColumn Header="First Name" Width="150" Binding="{Binding FirstName, Mode=OneWay}" />
<DataGridTextColumn Header="Last Name" Width="150" Binding="{Binding LastName, Mode=OneWay}" />
<DataGridTextColumn Header="Description" Width="*" Binding="{Binding Description, Mode=OneWay}" />
</DataGrid.Columns>
</DataGrid>
I am using a DataGrid to display several fields, one of which is a multi-line description. The grid displays the data just fine until I try to hide the header rows by setting HeadersVisibility="Column"
. The header rows disappear but then while I am scrolling the row header reappears for some random rows.
I have narrowed it down to the column that displays multi-line description. As long as I leave this column off, then I don't have this issue. I have tried separating the lines by both "\r\n"
and "\n"
but neither work. Does the DataGrid support multi-line text fields?
Below is a picture to show what is happening and the XAML I used to create the grid.
<DataGrid DataContext="{StaticResource personRepository}"
ItemsSource="{Binding PersonList, Mode=OneWay}"
AutoGenerateColumns="False"
HeadersVisibility="Column"
CanUserSortColumns="False"
SelectionMode="Extended"
IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Width="80" Binding="{Binding Id, Mode=OneWay}" />
<DataGridTextColumn Header="First Name" Width="150" Binding="{Binding FirstName, Mode=OneWay}" />
<DataGridTextColumn Header="Last Name" Width="150" Binding="{Binding LastName, Mode=OneWay}" />
<DataGridTextColumn Header="Description" Width="*" Binding="{Binding Description, Mode=OneWay}" />
</DataGrid.Columns>
</DataGrid>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试设置
RowHeaderWidth = 0
而不是HeaderVisibility
Try setting
RowHeaderWidth = 0
instead ofHeaderVisibility
在本例中,lvCurDocFields 是父 ListView。这里的缺点是您需要为其他列设置硬宽度,然后这些其他列的总和就是 ConverterParameter。如果你有一个垂直滚动条,那么留下大约 20 个。GridView 有点痛苦,但我喜欢它的演示文稿,因为只读它比 DataGrid 高效得多
In this case lvCurDocFields is the parent ListView. The down side here is you need to set hard widths for the other columns and then the total of those other columns is the ConverterParameter. If you have a vertical scroll bar then leave about 20. GridView is kind of a pain but I like the presentation as for read only it is much more efficient than DataGrid