C# WPF-绑定到组合框选定项的工具提示内容

C# WPF-绑定到组合框选定项的工具提示内容,c#,wpf,C#,Wpf,我有一个datagrid,它在每一列的开头都有一个组合框。我希望在悬停组合框时显示工具提示,以显示选定项的值 <DataGrid HeadersVisibility="Column" Name="griglia" Grid.Row="2" ItemsSource="{Binding Path=Test}" AutoGenerateColumns="True" IsReadOnly="True" ScrollViewer.CanContentScroll="True" ScrollViewe

我有一个datagrid,它在每一列的开头都有一个组合框。我希望在悬停组合框时显示工具提示,以显示选定项的值

<DataGrid HeadersVisibility="Column" Name="griglia" Grid.Row="2" ItemsSource="{Binding Path=Test}" AutoGenerateColumns="True" IsReadOnly="True" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible">
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="ContentTemplate" >
                    <Setter.Value>
                        <DataTemplate DataType="DataGridColumnHeader">
                            <ComboBox ItemContainerStyle="{StaticResource SingleSelectionComboBoxItem}" DisplayMemberPath="Oggetto" Width="100" Height="20" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=DataContext.Selezione, UpdateSourceTrigger=LostFocus}"  SelectionChanged="SingleSelectionComboBox_SelectionChanged"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="ToolTip">
                    <Setter.Value>
                        <ToolTip Content = "what should i put here????"/>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>
</DataGrid>
其中,
Tot.Oggetto
是一个字符串,包含组合框中显示的项,但它不起作用

编辑:我已经尝试设置组合框的工具提示属性,如

ToolTip="{Binding Path=SelectedItem.ToolTip, RelativeSource={RelativeSource Self}}"

但是它不显示任何工具提示

您的第一次尝试是设置DataGridColumnHeader的工具提示,但似乎您想要设置组合框的工具提示,对吗

可以设置组合框的工具提示以显示其选定值,如下所示:

<ComboBox ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=SelectedValue}" ...>

尝试结合绑定设置放置目标。你需要这样做,因为工具提示是一个弹出窗口,有一个不同的视觉树,没有一些帮助无法找到祖先。这是成功的,谢谢。我只需要指定要显示的SelectedValue的属性,因为这是一个类的实例。您需要将SelectedValuePath设置为SelectedValuePath=“Ogetto”。
<ComboBox ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=SelectedValue}" ...>
<DataGrid HeadersVisibility="Column" Name="griglia" Grid.Row="2" ItemsSource="{Binding Path=Test}" AutoGenerateColumns="True" IsReadOnly="True" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible">
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="ContentTemplate" >
                <Setter.Value>
                    <DataTemplate DataType="DataGridColumnHeader">
                        <ComboBox ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=SelectedValue}" ItemContainerStyle="{StaticResource SingleSelectionComboBoxItem}" DisplayMemberPath="Oggetto" Width="100" Height="20" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=DataContext.Selezione, UpdateSourceTrigger=LostFocus}"  SelectionChanged="SingleSelectionComboBox_SelectionChanged"/>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </DataGrid.ColumnHeaderStyle>
</DataGrid>