Размеры ListView больше, чем Window - PullRequest
0 голосов
/ 14 июня 2019

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

Я уже пытался установить MaxHeigth для родителей ActualHeight, который не возвращает ожидаемый результат.результат.

<TabItem x:Name="unassingedErrors" Header="{x:Static p:Resources.MainContentPageUnassingedErrors}">
            <StackPanel>
                <Separator Grid.Row="1"/>
                <!--<Frame Grid.Row="2" Name="MainFrameError" Source="UnassignedErrorPage.xaml" />-->
                <Grid>
                    <Grid.DataContext>
                        <vme:UnassignedErrorPageVM x:Name="ViewModel"/>
                    </Grid.DataContext>
                    <ScrollViewer>
                        <ListView ItemsSource="{Binding errorList}">
                            <ListView.Template>
                                <ControlTemplate>
                                    <ItemsPresenter></ItemsPresenter>
                                </ControlTemplate>
                            </ListView.Template>
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="*"/>
                                            <RowDefinition Height="*"/>
                                        </Grid.RowDefinitions>
                                        <Label Grid.Row="0" Grid.Column="0" Content="{x:Static p:Resources.ErrorPageID}"/>
                                        <Label Grid.Row="0" Grid.Column="1" Content="{x:Static p:Resources.ErrorPageText}"/>
                                        <Label Grid.Row="0" Grid.Column="2" Content="{x:Static p:Resources.ErrorPageThrowDate}"/>
                                        <Label Grid.Row="0" Grid.Column="3" Content="{x:Static p:Resources.ErrorPageHandledDate}"/>
                                        <Label Grid.Row="0" Grid.Column="4" Content="{x:Static p:Resources.ErrorPageIncident}"/>
                                        <Label Grid.Row="0" Grid.Column="5" Content="{x:Static p:Resources.ErrorPageType}"/>
                                        <Label Grid.Row="0" Grid.Column="6" Content="{x:Static p:Resources.ErrorPageSensor}"/>

                                        <Label Grid.Row="1" Grid.Column="0" Content="{Binding ID}"/>
                                        <Label Grid.Row="1" Grid.Column="1" Content="{Binding Text}"/>
                                        <Label Grid.Row="1" Grid.Column="2" Content="{Binding ThrowDate}"/>
                                        <Label Grid.Row="1" Grid.Column="3" Content="{Binding HandledDate}"/>
                                        <Label Grid.Row="1" Grid.Column="4" Content="{Binding Incident.IncidentID}"/>
                                        <Label Grid.Row="1" Grid.Column="5" Content="{Binding Type.Name}"/>
                                        <Label Grid.Row="1" Grid.Column="6" Content="{Binding Sensor.Name}"/>
                                    </Grid>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>
                    </ScrollViewer>
                </Grid>
            </StackPanel>
        </TabItem>

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Фактическая проблема заключается в том, что средство просмотра прокрутки не знает, насколько высоко оно должно отображаться, поэтому оно не будет отображать полосу прокрутки.

Мой подход - установить высоту прокрутки с привязкой к высоте, которую вы хорошо знаете. Поэтому я поместил ваш код в тестовое окно и дал ему имя

<Window x:Class="MyTest.MainWindow" x:Name="myWindow" >

...

<ScrollViewer Height="{Binding ElementName=myWindow, Path=Content.ActualHeight}"  >
...

Вы также можете использовать какой-либо другой FrameworkElement по вашему выбору, чтобы получить высоту.

2 голосов
/ 14 июня 2019

У меня такая же разметка, и вы должны установить свойство MaxHeight для элемента управления ScrollViewer.Так вот моя разметка:

<Grid>
    <ScrollViewer x:Name="ScrollViewer" ScrollChanged="ScrollViewer_ScrollChanged" MaxHeight="100">
        <ListView ItemsSource="{Binding}">
            <ListView.View>
                <GridView>
                    <GridView.ColumnHeaderContainerStyle>
                        <Style TargetType="GridViewColumnHeader">
                            <Setter Property="Visibility" Value="Hidden" />
                            <Setter Property="Height" Value="0" />
                        </Style>
                    </GridView.ColumnHeaderContainerStyle>
                    <GridViewColumn Header="Log" DisplayMemberBinding="{Binding Text}">
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
    </ScrollViewer>
</Grid>

А вот так это выглядит: Control view

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