树视图项工具提示绑定不起作用



我有一个树视图。它绑定到一个名为节点的可观察集合。工具提示上的绑定数据未显示:

<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 为空。"输出"窗口显示无法在视图模型上找到它们。如何使绑定在节点上而不是视图模型上显示?

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

例如

<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(也可以在Path前面加上"DataContext",否则直接绑定到树视图上的属性)。

最新更新