WPF - видимость всплывающей подсказки столбца DataGrid на основе длины данных столбца - PullRequest
1 голос
/ 18 марта 2010

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

В подсказке к тексту привязка текста не работает. Если он связан с некоторыми жестко закодированными строками, он работает нормально.

Здесь ниже код, который я добавил для столбца сетки ...

<Custom:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Text}">
                                <TextBlock.ToolTip>
                                    <ToolTip 
                                         DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}" 
                                         Visibility="{Binding Converter={StaticResource ToolTipVis}}">
                                         <TextBlock Text="{Binding Text}">  

                                     </ToolTip>
                                </TextBlock.ToolTip>
                            </TextBlock>
                        </DataTemplate>
                    </Custom:DataGridTemplateColumn.CellTemplate>

1 Ответ

5 голосов
/ 18 марта 2010

DataContext вашей всплывающей подсказки имеет значение System.Windows.Controls.TextBlock, поскольку вы определили его как RelativeSource.Self.

Если вы потеряете ToolTip DataContext, вы сможете привязать свое свойство Text.

Возможно, вам потребуется изменить привязку конвертера, чтобы отразить это, но я не уверен, поскольку я не проверял это ...

<ToolTip
    Visibility="{Binding Path=PlacementTarget, 
      RelativeSource={x:Static RelativeSource.Self}, 
      Converter={StaticResource ToolTipVis}}">>
    <TextBlock Text="{Binding Path=Text}"/>
</ToolTip>
...