WPF DataGrid的行标题可见性错误错误、标题、见性、WPF

2023-09-04 02:42:02 作者:醉迴三笙夣

我使用一个DataGrid来显示几个领域,其中之一是多行描述。网格显示数据就好了,直到我试图通过设置 HeadersVisibility =列来隐藏标题行。表头行消失,但后来当我滚动的行头重新出现了一些随机的行。

我已经把范围缩小到显示多行描述的列。只要我离开这个专栏了,那我就没有这个问题。我试图分开双方\ r \ N\ N的线,但没有工作。是否在DataGrid支持多行文本字段?

下面是一个图片显示正在发生的事情和XAML我用来创建网格。​​

< D​​ataGrid中的DataContext ={的StaticResource personRepository}           的ItemsSource ={结合PersonList,模式=单向}           的AutoGenerateColumns =FALSE           HeadersVisibility =栏           CanUserSortColumns =假           的SelectionMode =扩展           的IsReadOnly =真>     < D​​ataGrid.Columns>         < D​​ataGridTextColumn标题=IDWIDTH =80绑定={结合编号,模式=单向}/>         < D​​ataGridTextColumn标题=名WIDTH =150绑定={结合名字,模式=单向}/>         < D​​ataGridTextColumn标题=姓WIDTH =150绑定={结合姓氏,模式=单向}/>         < D​​ataGridTextColumn标题=说明WIDTH =*绑定={绑定描述,模式=单向}/>     < /DataGrid.Columns> < /数据网格>

解决方案

尝试设置 RowHeaderWidth = 0 而不是 HeaderVisibility

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.

WPF DataGrid 通过自定义表头模拟首行固定

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>

解决方案

Try setting RowHeaderWidth = 0 instead of HeaderVisibility