3

セル内のコンテンツを非表示にしないと、ツールチップをDataGridCellのコンテンツにバインドできないようです。つまり、セルの上にマウスを置くと、ツールチップは期待どおりに表示されますが、セルのコンテンツは表示されなくなります(リストを下にスクロールして元に戻さない限り)。以下は、私が問題を抱えているWPFです。

<DataGrid.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content, Mode=OneWay}"> 
        </Setter>
    </Style>
</DataGrid.CellStyle>

ツールチップが表示されたときにDataGridCellのコンテンツが消えないようにするにはどうすればよいですか?

4

1 に答える 1

2

プロパティにバインドしContentます。これは多くの場合がありますが、主にTextBlock、テキスト、CheckBoxブールデータなどの制御です。このコントロールはすでに他の視覚要素の子であるため、セルから削除されてに追加されたために表示されなくなった可能性がありますToolTip。もしそうなら、それはあなたのコードのどこかで行われていると思います、そしてあなたはこれを処理しなければなりません、しかしそれは良い解決策ではありません。

または、値を解析して抽出するコンバーターをバインディングに追加することもできますがContent、そのソリューションもあまり良くありません。

これを処理するためのより良い方法は、視覚的な表現ではなく、実際のソースにバインドすることです。列を自動的に作成しない場合は、すべての列にツールチップスタイルを定義できます。

 <DataGrid.Columns>
      <DataGridTextColumn Binding="{Binding Name}">
          <DataGridTextColumn.CellStyle>
              <Style>
                  <Setter Property="ToolTipService.ToolTip" Value="{Binding Name}" />
              </Style>
           </DataGridTextColumn.CellStyle>
       </DataGridTextColumn>
 </DataGrid.Columns>
于 2013-02-27T16:23:32.523 に答える