2013-06-19 4 views
0

Хорошо, у меня проблемы с использованием ScrollViewer (содержит ItemsControl) внутри StackPanel.Проблемы с сеткой и стопкой - привязки

Дело в том, что скроллинг работает, однако:

  • Независимо от того, сколько пользователь прокручивает вниз, нижние строки таблиц не видны
  • Когда прокрутка ... «Отменено »стол выскакивает обратно ...

<ScrollViewer Height="Auto"> 
    <ItemsControl ItemsSource="{Binding Items, Mode=TwoWay}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid VerticalAlignment="Top" Margin="0,0,0,0" x:Name="ResTable"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="0.10*"/> 
         <ColumnDefinition Width="0.30*" /> 
         <ColumnDefinition Width="0.30*"/> 
         <ColumnDefinition Width="0.30*"/> 
        </Grid.ColumnDefinitions> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="*"/> 
         <RowDefinition Height="Auto"/> 
        </Grid.RowDefinitions> 
        <TextBlock Grid.Column="0" Text="{Binding [num]}" HorizontalAlignment="Center" /> 
        <TextBlock Grid.Column="1" Text="{Binding [A]}" HorizontalAlignment="Center" /> 
        <TextBlock Grid.Column="2" Text="{Binding [B]}" HorizontalAlignment="Center" /> 
        <TextBlock Grid.Column="3" Text="{Binding [C]}" HorizontalAlignment="Center" /> 
       </Grid> 
      </DataTemplate> 

     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</ScrollViewer> 

Любые идеи?


P.S.

  • Я имел взгляд на некоторые другие ответы на аналогичные вопросы, но никто, кажется, не работает ...

  • Моя основная идея заключается в том, чтобы отобразить таблицу, с фиксированный заголовок и прокрутка содержимого (заполняются через Bindings) - в порядке, а также есть несколько вещей, которые в верхней части страницы (кроме таблицы я имею в виду)

ответ

2

Я предполагаю, что проблема в том, что вы должны, вероятно, использовать родительский элем лор как Сетка, не StackPanel, потому что StackPanel имеет свои недостатки при изменении размеров дочерних элементов с завитками и так далее.

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

<!-- Put headers in Grid.Row="0" --> 

<!-- Put Scrollviewer in Grid.Row="1" --> 

</Grid> 

Также Height="Auto" атрибут может быть удален из ScrollViewer, вы можете захотеть использовать VerticalAlignment="Stretch" для элемента, чтобы принять все доступное пространство. Надеюсь, это то, чего вы пытаетесь достичь.

+0

Это именно то, что я сделал, чтобы исправить это ** прямо сейчас **. И когда я вернулся сюда, я увидел ваш ответ. Отлично, конечно. И это работает! Спасибо дружище! Пятно на! :-) –

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