Как сделать ширину GridViewColumn равной ширине Grid - PullRequest
0 голосов
/ 19 июля 2011

У меня есть сетка 2X2, заполненная двумя элементами управления Listview и некоторыми кнопками и текстовыми полями в главном окне моего приложения.Ниже приведена часть моего кода XAML:

<Grid Name="Gd">    
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <ListView MinHeight="600" Grid.Column="0" Grid.Row="1" Margin="10">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="330" Header="Module ID" />
            </GridView>
        </ListView.View>
    </ListView>

    <ListView MinHeight="600" Grid.Column="0" Grid.Row="2" Margin="10">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="330" Header="Module Name" />
            </GridView>
        </ListView.View>
    </ListView>    
</Grid>

Сложность, с которой я столкнулся, заключается в том, что я не знаю, как установить ширину, равную ширине столбца таблицы.Должен ли я сделать это в коде позади?Кроме того, другая проблема заключается в том, что приведенный выше код не может справиться с ситуацией, когда размер сетки изменяется.

В идеале я хочу, чтобы элемент управления ListView заполнял столбец Grid и соответственно увеличивал / уменьшал каждый раз, когда изменяется размер Grid.Я думаю, это как-то связано с настройками ColumnDefinition, в которых я не очень уверен.

Кто-нибудь может помочь?Большое спасибо.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Если вы помещаете свой ListView в первый столбец, ваши определения столбцов должны выглядеть следующим образом:

<Grid.ColumnDefinitions>             
   <ColumnDefinition Width="*" />           
   <ColumnDefinition Width="Auto" />         
</Grid.ColumnDefinitions> 

Также, как уже сказали ребята, установите HorizontalAlignment="Stretch" для обоих ListView элементов управления

0 голосов
/ 19 июля 2011

попробуйте это .... если вы хотите одинаковую высоту для обоих ListViews, вы можете указать высоту определения строки как * или вы можете задать auto .....

<Grid Name="Gd">

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

        <ListView HorizontalAlignment="Stretch" Grid.Column="0" Grid.Row="0" Margin="10">
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="330" Header="Module ID"/>
                </GridView>
            </ListView.View>
        </ListView>

        <ListView HorizontalAlignment="Stretch" Grid.Column="0" Grid.Row="1" Margin="10">
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="330" Header="Module Name" />
                </GridView>
            </ListView.View>
        </ListView>

    </Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...