2012-04-25 12 views
31

Używam sterowania ListView zamiast DataGrid w mojej aplikacji WPF. Chcę nadać * szerokość do mojego ListView.GridViewColumn, ale zawsze gdy dostarczam * szerokości do ListView.GridViewColumn, daje mi to błąd czasu kompilacji. Sugeruję, jak mogę udostępnić * szerokość do ListView.GridViewColumn, aby ListView.GridViewColumn mógł automatycznie wypełnić dodatkową przestrzeń po wyświetleniu ekranu maksymalizacji.ListView.GridViewColumn (*) szerokość

Każda pomoc w tym zakresie będzie bardzo cenna. Dzięki

Odpowiedz

57

Spróbuj tego rozwiązania:

<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> 

Można również znaleźć jakieś inne rozwiązanie pod następującym linkiem:

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/3ee5696c-4f26-4e30-8891-0e2f95d69623/

+0

Dzięki Bilal Hashmi. Ale w powyższym podejściu xaml, gdzie powinienem umieścić wiersz kodu na mojej stronie xaml, tak by wpłynęło to na kolumnę ListView. I przy użyciu IValueConverter działa dobrze po raz pierwszy, gdy ekran ładuje się, ale kiedy zmaksymalizuję ekran lub zmieniam rozmiar ekranu, nie zmienia on odpowiednio szerokości kolumny. – Yogesh

+0

może to pomoże http://stackoverflow.com/questions/560581/how-to-autosize-and-right-align-gridviewcolumn-data-in-wpf – Klaus78

+0

Możesz umieścić go w dowolnym miejscu na tej stronie xaml, gdzie wyświetlasz Twój ListView. Powiedzmy w wierszu = 0 i kolumnie = 0 głównej siatki strony. –

3

Zamieściłem moje podejście do tego tutaj, które jest nieco inna (ale okazało się, że jest bardzo niezawodny i pozwala na szerokość procentową kolumn https://stackoverflow.com/a/10526024/41211), jak próbowałem powyższego i znajdował moje maksymalne przetwarzanie devenv.exe, ponieważ ciągle próbował ponownie ocenić mój widok projektanta za pomocą dynamiczne wiązania.

-2

Z group columns view definition The Kettic GridView pozwala użytkownikom na tworzenie grup kolumn i zobaczyć widok HTML do danych w sieci

+0

Proszę napisać próbkę kodu, aby zilustrować swoje słowa. – AlexB