WPF - простой относительный путь - FindAncestor - PullRequest
2 голосов
/ 05 апреля 2010

В XAML ниже подсказка правильно связывается с RelativeSource Self. Тем не менее, я не могу на всю жизнь понять, как получить TextBlock в прокомментированном блоке для ссылки на SelectedItem.Description

<Controls:RadComboBoxWithCommand x:Name="cmbPacking"
                                 Grid.Row="2"
                                 Grid.Column="5"
                                 ItemsSource="{Binding PackingComboSource}"
                                 DisplayMemberPath="DisplayMember"
                                 SelectedValuePath="SelectedValue"
                                 SelectedValue="{Binding ElementName=dataGrid1, Path=SelectedItem.PackingID}"
                                 ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Description}"
                                 IsSynchronizedWithCurrentItem="True"
                                 Style="{StaticResource comboBox}">
 <!--                    <Controls:RadComboBoxWithCommand.ToolTip>-->
                <!--                        <TextBlock Text="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Description}" TextWrapping="Wrap" Width="50"/>-->
 <!--                    </Controls:RadComboBoxWithCommand.ToolTip>-->                   
</Controls:RadComboBoxWithCommand>

Буду признателен за любые предложения

Спасибо - Джереми

Ответы [ 2 ]

3 голосов
/ 06 апреля 2010

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

<Controls:RadComboBoxWithCommand Grid.Row="2"
                                             Grid.Column="5"
                                             ItemsSource="{Binding PackingComboSource}"
                                             DisplayMemberPath="DisplayMember"
                                             SelectedValuePath="SelectedValue"
                                             SelectedValue="{Binding ElementName=dataGrid1, Path=SelectedItem.PackingID}"
                                             IsSynchronizedWithCurrentItem="True"
                                             Style="{StaticResource comboBox}">
                <Controls:RadComboBoxWithCommand.ToolTip>
                    <ToolTip DataContext="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget}">
                        <TextBlock Text="{Binding SelectedItem.Description}"
                                   TextWrapping="Wrap"
                                   Width="100" />
                    </ToolTip>
                </Controls:RadComboBoxWithCommand.ToolTip>
            </Controls:RadComboBoxWithCommand>

Надеюсь, это кому-нибудь пригодится Джереми

1 голос
/ 05 апреля 2010

Относительный источник self означает текущий объект, которым в данном конкретном случае будет сам TextBox. Вы хотите относительный источник поиска предка с типом предка RadComboBoxWithCommand. В качестве альтернативы, и, возможно, немного проще, дать поле со списком именем и использовать ElementName в привязке вместо относительного источника:

<ComboBox x:Name="cb" ...>
    <ComboBox.ToolTip>
        <TextBlock Text="{Binding SelectedItem.Description, ElementName=cb}" .../>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...