将自定义工具提示添加到DataGrid中的行

时间:2012-11-21 15:08:40

标签: c# wpf xaml datagrid

我想自定义我的DataGrid以显示所选行中的工具提示,请参阅下面的模型图片,以便更好地了解我想要实现的目标。

目前正好 - 显示单个选定的行: enter image description here

我想要的方式 - 显示所选的同一行,现在使用工具提示:

enter image description here

  • 我的DataGrid使用绑定到ViewModel。
  • 使用WPF&适用于Windows桌面的C#。

我真的不知道如何实现这一点,所以我对任何建议都持开放态度。

3 个答案:

答案 0 :(得分:17)

我使用DataGrid.RowStyle设置工具提示。

我的绑定对象具有ToolTipText属性,其中包含ToolTip的内容。

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Setter Property="ToolTip">
            <Setter.Value>
                <TextBlock Text="{Binding ToolTipText}" />
            </Setter.Value>
        </Setter>
    </Style>
</DataGrid.RowStyle>

答案 1 :(得分:11)

您可以使用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>

答案 2 :(得分:0)

在数据网格中的行上添加工具提示的另一种简单方法如下:

使用LodingRow事件并添加如下工具提示:

private void grdItemlogs_LoadingRow(object sender, DataGridRowEventArgs e)
    {
        if (e.Row != null)
        {
            string toolTipText = "Your Tooltip string content"
            e.Row.ToolTip = toolTipText;

        }
    }