контроль в выравнивании ListView.GridViewColumn - PullRequest
10 голосов
/ 01 октября 2010

У меня есть следующий WPF ListView:

    <ListView Grid.Column="2" Grid.Row="1" Margin="0,53,12,6" 
Name="lvwProperties" 
ItemsSource="{Binding Path=SelectedPropertyItems, Mode=TwoWay}" 
Grid.ColumnSpan="2">

        <ListView.View >

                        <GridView>
                            <GridViewColumn Header="Property" DisplayMemberBinding="{Binding Path=PropertyName, Mode=TwoWay}" Width="130" />
                            <GridViewColumn Header="Is Mandatory" Width="90"  >

                                <GridViewColumn.CellTemplate>

                                    <DataTemplate>

                                        <CheckBox IsChecked="{Binding Path=IsMandatory, Mode=TwoWay}" HorizontalAlignment="Center" />

                                    </DataTemplate>

                                </GridViewColumn.CellTemplate>

                            </GridViewColumn>

                        </GridView>
                    </ListView.View>
                </ListView>

Я хочу сделать CheckBox выровненным по центру во 2-й GridColumn. Установите HorizontalAlignment="Center", кажется, не сработает. Как добиться этого в XAML ???

1 Ответ

19 голосов
/ 04 октября 2010

Для центрирования содержимого в ListView необходимо установить ListView.ItemContainerStyle, чтобы иметь горизонтальное выравнивание Stretch следующим образом:

<ListView Grid.Column="2" Grid.Row="1" Margin="0,53,12,6" Name="lvwProperties"  
          ItemsSource="{Binding Path=SelectedPropertyItems, Mode=TwoWay}"  
          Grid.ColumnSpan="2"> 
    <ListView.ItemContainerStyle>
       <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
       </Style>
    </ListView.ItemContainerStyle>
    <ListView.View> 
        <GridView> 
            <GridViewColumn Header="Property" DisplayMemberBinding="{Binding Path=PropertyName, Mode=TwoWay}" Width="130" /> 
            <GridViewColumn Header="Is Mandatory" Width="90"  > 
               <GridViewColumn.CellTemplate> 
                   <DataTemplate> 
                       <CheckBox IsChecked="{Binding Path=IsMandatory, Mode=TwoWay}" HorizontalAlignment="Center" /> 
                   </DataTemplate> 
               </GridViewColumn.CellTemplate> 
            </GridViewColumn> 
        </GridView> 
    </ListView.View> 
</ListView> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...