mio UI:GridViewColumn Larghezza Regolazione
<ListView Name="persons" SelectionChanged="persons_SelectionChanged">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="auto"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="auto"/>
</GridView>
</ListView.View>
</ListView>
codebehind della mia UI:
internal void Update(IEnumerable<Person> pers)
{
this.persons.ItemsSource = null;
this.persons.ItemsSource = pers;
UpdateLayout();
}
miei Entità:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
I GridViewColumns hanno la larghezza della GridViewColumn-Header. Anche se chiamo Update() con persone con un nome lungo. La colonna non viene ridimensionata.
a) Come posso ridimensionare il "Nome" -colonna automaticamente (quando ho chiamato Aggiorna) alla lunghezza del Nome più lungo, ma non più lungo di un Valore x (Voglio specificare una larghezza massima di una colonna) ?
b) Come posso specificare che la colonna "Età" riempie lo spazio fino alla fine del controllo (in modo che le colonne di GridView utilizzino la larghezza completa del controllo)?
So che questo è piuttosto vecchio, ma voglio sottolineare, quanto è importante la tempistica della correzione di 'ColumnWidth' e che funziona davvero bene se applicata correttamente. Assicurarsi che il contenitore GridView sia caricato e visibile. Ho avuto una combinazione piuttosto brutta di un GridView inserito in un expander che era a sua volta parte di un controllo genitore virtualizzante. Significa che un ridimensionamento mentre si è fuori campo produrrebbe zero larghezza e gli articoli potrebbero cambiare quando il modello è stato riciclato per dati diversi. Ora sono abbastanza felice della mia soluzione. – grek40