棒グラフのユーザーコントロールを作成しようとしています。を使用して各バーを作成していますDataTemplate
。
問題は、各バーの高さを計算するために、最初にそのコンテナ(TemplatedParent
)の高さを知る必要があることです。残念ながら私が持っているもの:
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource HeightConverter}, Mode=OneWay}"
動作しません。NaN
の値がコンバーターに返されるたび。RelativeSource={RelativeSource TemplatedParent}
このコンテキストでは機能しませんか?DataTemplateが適用されている要素と「通信」できるようにするには、他に何ができますか?
ここで役立つ場合は、必要最低限の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>