J'utilise le contrôle ListView
au lieu de DataGrid
dans mon WPF application. Je veux donner *
largeur à mon ListView.GridViewColumn
, mais chaque fois que je fournis *
largeur à ListView.GridViewColumn
, cela me donne une erreur de temps de compilation. Veuillez me suggérer comment puis-je fournir *
largeur à ListView.GridViewColumn
, pour que ListView.GridViewColumn
peut remplir automatiquement l'espace supplémentaire lorsque je maximise l'écran.
Toute aide à ce sujet sera très appréciée. Merci
Veuillez essayer cette solution:
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="column1" x:Name="col1"/>
<!--Column that shall resize: Width is set to the Actual Width of the helper field defined below-->
<GridViewColumn Header="column2"
Width="{Binding ElementName=helperField, Path=ActualWidth}"/>
</GridView>
</ListView.View>
Test Text
</ListView>
<!--This is the hidden helper Grid which does the resizing -->
<Grid Visibility="Hidden">
<Grid.ColumnDefinitions>
<!--Width is bound to width of the first GridViewColumn -->
<ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}"/>
<!--Width is set to "Fill"-->
<ColumnDefinition Width="*"/>
<!--Correction Width-->
<ColumnDefinition Width="10"/>
</Grid.ColumnDefinitions>
<!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
<Grid Grid.Column="1" x:Name="helperField"/>
</Grid>
Vous pouvez également trouver une autre solution sur le lien suivant:
http://social.msdn.Microsoft.com/forums/en-US/wpf/thread/3ee5696c-4f26-4e30-8891-0e2f95d69623/
J'ai posté mon approche ici, ce qui est un peu différent (mais je l'ai trouvé très fiable et permet des colonnes de pourcentage de largeur https://stackoverflow.com/a/10526024/41211 ) alors que j'essayais le ci-dessus et je trouvais mon traitement devenv.exe au maximum car il essayait constamment de réévaluer ma vue de concepteur avec les liaisons dynamiques ci-dessus.