Я пытаюсь сделать гистограмму контроля пользователя. Я создаю каждый бар, используя DataTemplate
.
Проблема в том, что для того, чтобы вычислить высоту каждого бара, сначала нужно узнать высоту его контейнера (TemplatedParent
). К сожалению что у меня есть:
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource HeightConverter}, Mode=OneWay}"
не работает. Каждый раз значение NaN
возвращается в мой конвертер. RelativeSource={RelativeSource TemplatedParent}
не работает в этом контексте? Что еще я могу сделать, чтобы мой DataTemplate мог «общаться» с элементом, к которому он применяется?
Если это поможет, вот базовый шаблон данных:
<DataTemplate x:Key="BarGraphTemplate">
<Grid Width="30">
<Rectangle HorizontalAlignment="Center" Stroke="Black" Width="20" Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource HeightConverter}, Mode=OneWay}" VerticalAlignment="Bottom" />
</Grid>
</DataTemplate>