0

私はツリービューを持っています。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 は空白です。出力ウィンドウには、ビュー モデルでそれらが見つからないことが示されています。ビューモデルではなく、ノード上でバインディングの外観を作成するにはどうすればよいですか?

4

1 に答える 1

0

おそらくコードを移動したいと思うでしょう。を使用して にTreeView.ItemContainerStyleを追加するとSetterToolTipノードレベルのツールチップが設定されます。

例えば

<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先頭に追加します。それ以外の場合は、ツリー上のプロパティに直接バインドします-見る)。

于 2013-01-29T04:51:55.223 に答える