選択した行内にツールチップを表示するようにDataGridをカスタマイズしたいのですが、達成したいことのより良いアイデアについては、以下のモックアップ画像を参照してください。
現時点でのとおり-選択した単一の行を表示します。
方法-選択した同じ行をツールチップで表示します。
- 私のDataGridはViewModelへのバインドを使用しています。
- Windowsデスクトップ用のWPFおよびC#の操作。
どうすればいいのかわからないので、どんな提案も受け付けています。
を使用しDataGrid.RowStyle
てツールチップを設定します。
バインドされたオブジェクトにToolTipText
は、のコンテンツを含むプロパティがありますToolTip
。
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="ToolTip">
<Setter.Value>
<TextBlock Text="{Binding ToolTipText}" />
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
RowDetailsTemplateを使用できます。
サンプルコードは次のとおりです。
<DataGrid Name="grid" AutoGenerateColumns="False">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<TextBlock Background="Orange" Text="{Binding MoreInfo}" TextWrapping="Wrap"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}" />
<DataGridTextColumn Header="ID" Binding="{Binding Name}" />
<DataGridTextColumn Header="ID" Binding="{Binding Surname}" />
</DataGrid.Columns>
</DataGrid>
データグリッドの行にツールチップを追加するもう1つの簡単な方法は、次のとおりです。
イベントを使用して、次のLodingRow
ようなツールチップを追加します。
private void grdItemlogs_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (e.Row != null)
{
string toolTipText = "Your Tooltip string content"
e.Row.ToolTip = toolTipText;
}
}