WPF ListView GridViewColumn ширина 50% пространства - PullRequest
0 голосов
/ 22 мая 2019

Я получил этот xaml ListView:

<ListView Grid.Row="4" Grid.Column="1" 
              ItemsSource="{Binding Path=ListViewAgentItems}" 
              HorizontalAlignment="Left" 
              HorizontalContentAlignment="Left">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.View>
            <GridView>
                <GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Agent ID" DisplayMemberBinding="{Binding AgentId}"/>
                <GridViewColumn HeaderContainerStyle="{StaticResource ListViewStyle}" Header="Distance" DisplayMemberBinding="{Binding Distance}"/>
            </GridView>
        </ListView.View>
</ListView>

Это стиль:

<Window.Resources>
    <Style x:Key="ListViewStyle" TargetType="{x:Type GridViewColumnHeader}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</Window.Resources>

Я хочу, чтобы оба GridViewColumn занимали все пространство равномерно, что означаетчто ListView находится в столбце сетки, поэтому я хочу, чтобы GridView занимал все пространство столбца, а также что оба столбца GridView будут занимать 50% ширины.На данный момент ListView автоматически изменяется в соответствии с данными, которые он хранит, что мне не нужно.

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Простое решение - использовать сетку данных, а не просмотр списка. Вы можете установить ширину столбца данных xxxx *.

Если вы действительно хотели придерживаться списка, и у вас нет заданной ширины, поэтому вы можете установить ширину для определенного числа, см. Как мне получить ListView GridViewColumn, чтобы заполнить оставшееся пространство в моей сетке?

0 голосов
/ 23 мая 2019

Если вы переключитесь на DataGrid только для чтения, вы можете использовать размер звезды :

<DataGrid Grid.Row="4" Grid.Column="1" 
          ItemsSource="{Binding Path=ListViewAgentItems}" 
          IsReadOnly="True" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Agent ID" Binding="{Binding AgentId}" Width="1*"/>
        <DataGridTextColumn Header="Distance" Binding="{Binding Distance}" Width="1*"/>
    </DataGrid.Columns>
</DataGrid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...