TreeViewItem工具提示绑定不起作用

时间:2013-01-29 04:08:03

标签: wpf

我有树视图。它绑定到一个名为Nodes的ObservableCollection。工具提示上的绑定数据未显示:

<controls:TreeViewEx BorderThickness="0"
                        ItemsSource="{Binding Nodes}"
                        SelectedItemEx="{Binding SelectedTreeNode, Mode=TwoWay}">

        <controls:TreeViewEx.ToolTip>

            <Grid>

                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>

                <Image Grid.Row="0"
                        Grid.Column="0" 
                        Source="/FMG.UI.WPF;component/Media/Images/job_128.png"
                        Height="16"
                        Width="16"/>

                <TextBox Grid.Row="0"
                            Grid.Column="1"
                            Text="Job: "
                            FontWeight="Bold"/>

                <TextBox Grid.Row="0"
                            Grid.Column="2"
                            Text="{Binding ToolTipHeader}"/>

                <Border Grid.Row="1"
                        Grid.Column="0"
                        Grid.ColumnSpan="3"
                        Height="2"
                        BorderBrush="Gray"/>

                <TextBox Grid.Row="2"
                            Grid.Column="0"
                            Grid.ColumnSpan="3"
                            Text="{Binding ToolTipDetails}"/>

            </Grid>

        </controls:TreeViewEx.ToolTip>

</controls:TreeViewEx>

弹出工具提示,但ToolTipHeader和ToolTipDetails为空白。 “输出”窗口表示在视图模型上找不到它们。如何在节点上进行绑定外观,而不是视图模型?

1 个答案:

答案 0 :(得分:0)

你可能想要移动代码;使用TreeView.ItemContainerStyle并为Setter添加ToolTip,这将设置节点级工具提示。

e.g。

<controls:TreeViewEx.ItemContainerStyle>
    <Style TargetType="controls:TreeViewItemEx"> <!-- Guessing at item type name here -->
        <Setter Property="Tooltip">
            <Setter.Value>
                 <!-- Move your tooltip here -->
            </Setter.Value>
        </Setter>
    </Style>
</controls:TreeViewEx.ItemContainerStyle>

当然,工具提示中所有绑定的DataContext将是当前项,如果您希望树视图的上下文指定找到它的RelativeSource(也可以添加“DataContext”)在Path上,否则直接在树视图上绑定属性。