Silverlight Recountryource TemplatedParent Привязка в рамках DataTemplate, возможно ли это?

StackOverflow https://stackoverflow.com/questions/2759613

Вопрос

Я пытаюсь сделать барный граф 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 с шаблонным режимом будем Работа в шаблоне данных, но он вернет содержимое докладчика шаблонного управления / элемента, а не сам элемент управления / элемента (который он делает при использовании в шаблоне управления). Для эксперимента поставить кнопку в шаблоне данных и назначьте это выражение привязки (без пути) в свойство его тега. Обработка события щелчка и поместите точку останова в обработчик событий. Теперь, когда вы запускаете проект и нажмите на кнопку, точка останова будет ударена в свой код, и вы можете увидеть объект, который он является обязательным к свойству тегов кнопки (которую вы можете видеть из параметра отправителя). Надеюсь это поможет...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top