Я реализую класс IScrollInfo (ButtonPaletteScrollPanel), который идет внутри ScrollViewer, например:
<ScrollViewer Name="btnScrlVwr" CanContentScroll="True" Loaded="ScrollViewer_Loaded" Height="450">
<vm:ButtonPaletteScrollPanel>
<ItemsControl Name="itmCtrl" ItemsSource="{Binding ButtonList, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Name="blButton"
Style="{StaticResource RectangularButtonStyle}"
Width="950" Height="80" Margin="5"
Content="{Binding ButtonText}" FontSize="18"
Command="{Binding ElementName=blGeneric, Path=DataContext.SelectionCommand}"
CommandParameter="{Binding TaskName}" Loaded="Button_Loaded">
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</vm:ButtonPaletteScrollPanel>
</ScrollViewer>
В моем классе IScrollInfo, в моем методе MeasureOverride, я пытаюсь получить высотузначение элементов кнопки (то есть 80), которые находятся в моем ButtonPaletteScrollPanel.
Если я позвоню foreach (UIElement child in this.InternalChildren)
, возвращенный ребенок будет моим ItemsControl
.
Могу ли я добраться до элементов моей кнопки из этого объекта ItemsControl или есть другой подход, который я должен использовать?