Ich versuche, ein Bargraph-Benutzerkontrollsystem zu erstellen. Ich erstelle jeden Balken mit einer DataTemplate
.
Das Problem ist, um die Höhe jedes Balkens zu berechnen, muss ich zunächst die Höhe des Containers kennen (die TemplatedParent
). Leider, was ich habe:
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource HeightConverter}, Mode=OneWay}"
funktioniert nicht. Jedes Mal, wenn ein Wert von NaN
wird an meinen Konverter zurückgegeben. Ist RelativeSource={RelativeSource TemplatedParent}
in diesem Zusammenhang nicht funktionieren? Was kann ich sonst noch tun, damit mein DataTemplate mit dem Element, auf das es angewendet wird, "sprechen" kann?
Incase es hilft hier ist die Barebones 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>