Silverlight Recountryource TemplatedParent Привязка в рамках DataTemplate, возможно ли это?
-
02-10-2019 - |
Вопрос
Я пытаюсь сделать барный граф Usercontrol. Я создаю каждый бар, используя DataTemplate
.
Проблема в том, чтобы вычислить высоту каждого бара, мне сначала нужно знать высоту своего контейнера ( TemplatedParent
). К сожалению, что у меня есть:
Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Height, Converter={StaticResource HeightConverter}, Mode=OneWay}"
не работает. Каждый раз стоимость NaN
возвращается в мой конвертер. Делает RelativeSource={RelativeSource TemplatedParent}
Не работать в этом контексте? Что еще я могу сделать, чтобы позволить моей таблице данных «говорить» на элемент, к которому применяется?
Incase это помогает здесь представляет собой материальные патрубки:
<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>
Решение
Ответить на ваш вопрос, родственники работает только в ControlTemplate
Это не работает в DataTemplate
.
Есть ли причина, почему Silverlight Toolkit Chart. Управления не работают для вас в создании гистограммы (или диаграммы столбца, поскольку взятие относится к вертикали набор баров).
Другие советы
Вы пробовали актуальную собственность? Это должно вернуть вам значение. Rucrientource с шаблонным режимом будем Работа в шаблоне данных, но он вернет содержимое докладчика шаблонного управления / элемента, а не сам элемент управления / элемента (который он делает при использовании в шаблоне управления). Для эксперимента поставить кнопку в шаблоне данных и назначьте это выражение привязки (без пути) в свойство его тега. Обработка события щелчка и поместите точку останова в обработчик событий. Теперь, когда вы запускаете проект и нажмите на кнопку, точка останова будет ударена в свой код, и вы можете увидеть объект, который он является обязательным к свойству тегов кнопки (которую вы можете видеть из параметра отправителя). Надеюсь это поможет...