Sto utilizzando un DataGrid per visualizzare diversi campi, uno dei quali è una descrizione a più righe. La griglia visualizza i dati bene fino a quando non cerco di nascondere le righe dell'intestazione impostando HeadersVisibility="Column"
. Le righe di intestazione scompaiono, ma mentre scorrono, l'intestazione della riga riappare per alcune righe casuali.Errore Visibilità Intestazione riga DataGrid WPF
L'ho ristretto alla colonna che visualizza la descrizione a più righe. Finché esco da questa colonna, non ho questo problema. Ho provato a separare le linee da entrambi "\r\n"
e "\n"
ma nessuno dei due funziona. Il DataGrid supporta campi di testo su più righe?
Di seguito un'immagine per mostrare cosa sta succedendo e lo XAML che ho utilizzato per creare la griglia.
<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>
Che cosa si intende per "nascondere le righe di intestazione "? HeadersVisibility = "Column" è il valore predefinito. Qual era l'impostazione precedente (che funzionava)? Se questo è letto solo vorrei usare ListView GridView. Più XAML ma penso che tu abbia un controllo migliore della formattazione. Per il contenuto, utilizzare TextBlock e impostare Wrap on per la descrizione. – Paparazzi
L'impostazione predefinita è HeadersVisibility = All. La riga di intestazione è piccola, ma è lì. Ho iniziato con GridView ma le larghezze delle colonne non avrebbero accettato la notazione "*" in modo che l'ultima colonna riempisse lo spazio rimanente. – dewald
Devi usare un convertitore per * con GridView. Lo posterò come risposta, se ti va. – Paparazzi