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

Dra*_*cir 11 c# wpf xaml datagrid

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

就像现在一样 - 显示一个选定的行: 在此输入图像描述

我想怎样 - 显示选择的同一行,现在使用工具提示:

在此输入图像描述

  • 我的DataGrid使用绑定到ViewModel.
  • 使用Windows桌面的WPF和C#.

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

Mar*_*tin 20

我用它DataGrid.RowStyle来设置工具提示.

我的绑定对象有一个ToolTipText属性,其中包含的内容ToolTip.

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Setter Property="ToolTip">
            <Setter.Value>
                <TextBlock Text="{Binding ToolTipText}" />
            </Setter.Value>
        </Setter>
    </Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

  • 不,我不知道如何改变这一点.对我来说,"ToolTip"的这种行为部分显示在包含窗口之外是可以的. (3认同)

kma*_*zek 13

您可以使用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>
Run Code Online (Sandbox Code Playgroud)