Можно ли связать дочерние элементы в StackPanel и сохранить вертикальные точки привязки? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть StackPanel внутри ScrollViewer, и я хотел бы связать элементы и определить их таблицу данных, поэтому я использую ItemsControl.Кажется, проблема в том, что ItemsControl не реализует IScrollSnapPointsInfo, и это нарушает мои вертикальные точки привязки, связанные с StackPanel потомками и ScrollViewer.

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

Ниже приведен пример кода:

 <ScrollViewer x:Name="ScrollViewer"
               ZoomMode="Disabled"
               ZoomSnapPointsType="None"
               VerticalSnapPointsType="Mandatory"
               VerticalSnapPointsAlignment="Center">
     <ScrollViewer.Content>
         <Grid>
             <!-- Start StackPanel -->
             <StackPanel x:Name="StackPanel" Margin="0,500,0,500" Orientation="Vertical">
                 <StackPanel.Children>
                     <ItemsControl ItemsSource="{x:Bind Items, Mode=OneWay}">
                         <ItemsControl.ItemsPanel>
                             <ItemsPanelTemplate>
                                 <StackPanel Orientation="Vertical"/>
                             </ItemsPanelTemplate>
                         </ItemsControl.ItemsPanel>
                         <ItemsControl.ItemTemplate>
                             <DataTemplate x:DataType="model:ScrollItem">
                                 <Button Margin="8,0">
                                     <Button.Content>
                                         <Grid>
                                             <TextBlock Text="Hello" Foreground="Black" FontSize="20" />
                                         </Grid>
                                     </Button.Content>
                                </Button>
                           </DataTemplate>
                      </ItemsControl.ItemTemplate>
                 </ItemsControl>
            </StackPanel.Children>
       </StackPanel>
       <!-- End StackPanel -->
  </Grid>
   </ScrollViewer.Content>
</ScrollViewer>

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

В идеале я хотел бы просто привязать список элементов к панели стека и определить шаблон в xaml.Это намного лучше, чем создавать элементы в коде и т. Д. *

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