2012-04-25 3 views
31

Я использую управление ListView вместо DataGrid в моем WPF приложение. Я хочу дать * ширине моему ListView.GridViewColumn, но всякий раз, когда я предоставляю * ширину до ListView.GridViewColumn, он дает мне ошибку времени компиляции. Просьба предложить мне, как я могу предоставить ширину * до ListView.GridViewColumn, так что ListView.GridViewColumn может автоматически заполнить дополнительное пространство, когда я максимизирую экран.ListView.GridViewColumn (*) width

Любая помощь по этому поводу будет высоко оценена. Благодаря

ответ

57

Пожалуйста, попробуйте это решение:

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

Вы также могли бы найти другое решение по следующей ссылке:

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

+0

Благодаря Билал Хашми. Но в вышеприведенном методе xaml, где я должен помещать строку на мою страницу xaml, чтобы она вызывала столбец ListView. И с помощью IValueConverter он отлично работает в первый раз, когда загружается экран, но когда я максимизирую экран или экран изменения размера, он не изменяет размер столбца соответственно. – Yogesh

+0

Возможно, это может помочь http://stackoverflow.com/questions/560581/how-to-autosize-and-right-align-gridviewcolumn-data-in-wpf – Klaus78

+0

Вы можете поместить его в любую точку на этой странице xaml, где вы показываете ваш ListView. Предположим, что в Row = 0 и Column = 0 основной сетки страницы. –

3

Я отправил свой подход к этому здесь, который немного отличается (но нашел, что он очень надежный и позволяет столбцы процентной ширины https://stackoverflow.com/a/10526024/41211), как я пробовал выше, и нашел, что моя обработка devenv.exe максимизируется, поскольку она постоянно пыталась переоценить мой дизайнерский вид с помощью перетащить динамические привязки.

-2

С group columns view definition, то Kettic GridView позволяет пользователям создавать группы столбцов просматривать и просматривать HTML для данных в сетке

+0

Пожалуйста, разместите образец кода, чтобы проиллюстрировать ваши слова. – AlexB

Смежные вопросы