2011-02-08 2 views
1

Это моя XAML:Как равномерно выделить GridViewColumns в GridView?

<ListView ItemsSource="{Binding Items}"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Property1" DisplayMemberBinding="{Binding Property1}" /> 
      <GridViewColumn Header="Property2" DisplayMemberBinding="{Binding Property2}" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

Я хочу, чтобы эти 2 колонки, чтобы занять ширину ListView в соотношении 1: 1.

Как я могу это достичь?


Редактировать: Я нашел this suggestion on MS Connect. Это полностью решит мою проблему. Однако он (в настоящее время в течение 2,5 лет ..) закрыт, как перенесенные

ответ

1

Что приходит на ум используют в шаблонах, которые каждый из которых имеет ColumnDefinition с тем же SharedSizeGroup внутреннего Grids, то GridView должен затем Grid.IsSharedSizeScope="True" и столбцами представление сетки должно быть неуязвимым (если это возможно), не может проверить это прямо сейчас, так что это немного отрывочно.

Другим методом было бы привязать как Widths от GridViewColumns к ширине ListView, а затем использовать пользовательский конвертер, чтобы получить соответствующую долю этого объема.

+0

+1, Потенциально Blend можно использовать, чтобы узнать, как выглядит «шаблон» для «GridView», который может включать рестайлинг столбцов. Тем не менее, моя кишка говорит, что привязка 'Width' к конвертеру, установленному на половину' ActualWidth' 'ListView', вероятно, будет единственным способом без написания собственной' ViewBase'. – user7116

+0

@sixlettervariables Я пробовал именно это, и это дало мне горизонтальную полосу прокрутки. Думаю, мне нужно что-то меньше, чем две половинки. – Kugel

+0

@Kugel: Вы могли бы просто заставить полосу прокрутки выключиться, вам все равно не понадобится, это всего лишь пиксель или два: P –

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