Estoy usando un DataGrid para mostrar varios campos, uno de los cuales es una descripción de varias líneas. La cuadrícula muestra los datos muy bien hasta que intento ocultar las filas del encabezado configurando HeadersVisibility="Column"
. Las filas del encabezado desaparecen pero luego, mientras estoy desplazándome, el encabezado de la fila vuelve a aparecer para algunas filas aleatorias.WPF DataGrid Error de visibilidad del encabezado de fila
Lo he reducido a la columna que muestra la descripción de varias líneas. Mientras deje esta columna, entonces no tengo este problema. He intentado separar las líneas por "\r\n"
y "\n"
pero tampoco funcionan. ¿Admite DataGrid los campos de texto de varias líneas?
A continuación se muestra una imagen para mostrar lo que está sucediendo y el XAML que utilicé para crear la cuadrícula.
<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>
¿Qué quiere decir por "ocultar las filas de cabecera "¿?" HeadersVisibility = "Column" es el valor predeterminado. ¿Cuál fue la configuración anterior (que funcionó)? Si esto es de solo lectura, usaría ListView GridView. Más XAML, pero creo que tienes un mejor control del formato. Para el contenido use TextBlock y configure Wrap on para la descripción. – Paparazzi
El valor predeterminado es HeadersVisibility = All. La fila del encabezado es pequeña, pero está allí. Empecé con GridView pero el ancho de las columnas no aceptaría la notación "*", por lo que la última columna ocuparía el espacio restante. – dewald
Tienes que usar un convertidor para * con GridView. Lo publicaré como una respuesta si quieres. – Paparazzi