我想自定义我的 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>
You can use RowDetailsTemplate.
Here is sample code:
<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>
在数据网格中的一行上添加工具提示的另一种简单方法如下。
使用LodingRow
事件并添加您的工具提示,如下所示:
private void grdItemlogs_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (e.Row != null)
{
string toolTipText = "Your Tooltip string content"
e.Row.ToolTip = toolTipText;
}
}