Привязка в стиле текстового блока для всплывающей подсказки является привязкой к шаблону управления - PullRequest
1 голос
/ 09 сентября 2011

Я пытаюсь привязать всплывающую подсказку к текстовым блокам к значению, с которым связан текстовый блок.

Следующие работы для текстовых блоков, которые применяют этот стиль:

<Style x:Key="GridCell" TargetType="{x:Type TextBlock}">
    <Setter Property="ToolTip" Value="{Binding Converter={StaticResource CellToolTipConverter}}"/>
</Style>

<DataTemplate x:Key="GridCellContentTemplate">
     <TextBlock Style="{StaticResource GridCell}"
                Text="{Binding Converter=..."/>
</DataTemplate>

<xcdg:Column FieldName="FXRate" CellContentTemplate="{GridCellContentTemplate}" />

Working Tooltip

Но по какой-то странной причине, когда я пытаюсь передать этот стиль как ресурс в ячейки статистики сетки данных,

<Style x:Key="{x:Type xcdg:StatCell}" TargetType="{x:Type xcdg:StatCell}">
    <Style.Resources>
        <Style x:Key="{x:Type TextBlock}" TargetType="{x:Type TextBlock}">
             <Setter Property="ToolTip" Value="{Binding Converter={StaticResource CellToolTipConverter}}"/>
        </Style>
    </Style.Resources>
</Style>

<xcdg:StatCell FieldName="Limit">
      <TextBlock Text="{Binding Source={StaticResource Layers}, Path=StatLimit, Converter=..." />
</xcdg:StatCell>

Broken Tooltip

Как вы можете видеть, всплывающая подсказка привязана к некоторому шаблону данных, а не к тексту текстового поля. Из того, что я могу сказать, нет никакой разницы в этих двух, на самом деле последний кажется более простым.

Может кто-нибудь выяснить, почему вторая привязка всплывающей подсказки не работает так, как первая?


Примечание Я могу быть уверен, что привязка проходит через текстовое поле в ячейке, потому что если я изменю привязку на:

<Style x:Key="{x:Type xcdg:StatCell}" TargetType="{x:Type xcdg:StatCell}">
    <Style.Resources>
        <Style x:Key="{x:Type TextBlock}" TargetType="{x:Type TextBlock}">
             <Setter Property="ToolTip" Value="{Binding Path=Text, RelativeSource={x:Static RelativeSource.Self}, Converter={StaticResource CellToolTipConverter}}"/>
        </Style>
    </Style.Resources>
</Style>

Я получаю это:

Attempt

Но, конечно, мне не нужно свойство текста текстового блока, я хочу необработанное значение, с которым связан текстовый блок.

1 Ответ

0 голосов
/ 06 октября 2011

Причиной этого было то, что текстовая привязка смотрела на текстовый объектный объект, к которому была прикреплена подсказка.Просто так получилось, что xcdg: StatCell захватывает текст данных для своих собственных целей, и поэтому любые дочерние визуальные элементы не имеют доступа к исходному свойству, с которым связано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...