4

ツール ヒントを DataGridColumn ヘッダーに追加し、並べ替え機能を保持する方法はありますか。以下のコードは機能しません(ツールチップは表示されません)

<toolkit:DataGridTextColumn Header="Test" Width="70" Binding="{Binding TestText}" ToolTipService.ToolTip="{Binding TestText}">

そして、以下のコードを使用すると

<toolkit:DataGridTemplateColumn Header="Test" Width="70">  
              <toolkit:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding TestText}" ToolTip="{Binding TestText}"  />
                        </DataTemplate>
                    </toolkit:DataGridTemplateColumn.CellTemplate>
                </toolkit:DataGridTemplateColumn>

列の並べ替え機能が失われます.ヘルプ!

4

4 に答える 4

8

ToolTipに表示するには、そのプロパティを のDataGridColumnHeaderにバインドする必要があります。ToolTipToolTipDataGridColumn

<toolkit:DataGridTextColumn Header="Test"
                            Width="70"
                            Binding="{Binding TestText}"
                            ToolTipService.ToolTip="My Tooltip Text">
    <toolkit:DataGridTextColumn.HeaderStyle>
        <Style TargetType="toolkit:DataGridColumnHeader">
            <Setter Property="ToolTip"
                    Value="{Binding RelativeSource={RelativeSource Self},
                                    Path=Column.(ToolTipService.ToolTip)}"/>
        </Style>
    </toolkit:DataGridTextColumn.HeaderStyle>
</toolkit:DataGridTextColumn>
于 2011-01-29T12:41:59.040 に答える
4

グリッドが自動列を作成すると、その列に表示されているフィールドが認識されます。自分で列を作成すると、データ グリッドはその列に表示されるデータがわからないため、どのフィールドで列を並べ替えるかを推測できません。自分で定義した列をソート可能にするには、次のようにSortMemberPathプロパティを追加します。DataGridTemplateColumn

<DataGridTemplateColumn Header="Test" Width="70" SortMemberPath="TestText">
    ...
</DataGridTemplateColumn>
于 2011-01-29T04:37:56.460 に答える
1

以前の回答はほとんど正しいですが、過度に複雑であるか、投稿の2つの懸念事項の1つだけに対処していると思います.

まず、 のSortPath並べ替えを維持するように常にプロパティを設定できDataGridTemplateColumnます。また、表示されているもの以外のプロパティで並べ替えたい場合にも使用できます。

DataGridTemplateColumn次に、 OP の言及のように列ヘッダーにツールチップを表示するためにa は必要ありません。実際のセルにツールチップを追加する場合は、テンプレート列を使用できます (ただし、これもおそらく必要ありません)。いずれにせよ、列ヘッダーへのツールヒントの追加は、HeaderStyle によって最も簡単に実現できます。

<DataGridTextColumn Header="Test" Binding="{Binding TestText}">
    <DataGridTextColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="ToolTip" Value="Test ToolTip" />
        </Style>
    </DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
于 2014-01-17T22:14:09.777 に答える
0

ヘッダーではなく、列テンプレートにツールヒントを追加しています。

DataGridColumn の HeaderStyle プロパティを、HeaderCell のツールチップを含むテンプレートを含むスタイルに設定しようとしましたか?

こちらの作例もご覧ください

于 2011-01-28T22:09:02.093 に答える