12

選択した行内にツールチップを表示するようにDataGridをカスタマイズしたいのですが、達成したいことのより良いアイデアについては、以下のモックアップ画像を参照してください。

現時点でのとおり-選択した単一の行を表示します。 ここに画像の説明を入力してください

方法-選択した同じ行をツールチップで表示します。

ここに画像の説明を入力してください

  • 私のDataGridはViewModelへのバインドを使用しています。
  • Windowsデスクトップ用のWPFおよびC#の操作。

どうすればいいのかわからないので、どんな提案も受け付けています。

4

3 に答える 3

25

を使用しDataGrid.RowStyleてツールチップを設定します。

バインドされたオブジェクトにToolTipTextは、のコンテンツを含むプロパティがありますToolTip

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Setter Property="ToolTip">
            <Setter.Value>
                <TextBlock Text="{Binding ToolTipText}" />
            </Setter.Value>
        </Setter>
    </Style>
</DataGrid.RowStyle>
于 2015-08-14T09:40:07.093 に答える
16

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>
于 2012-11-21T15:26:40.050 に答える
0

データグリッドの行にツールチップを追加するもう1つの簡単な方法は、次のとおりです。

イベントを使用して、次のLodingRowようなツールチップを追加します。

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

        }
    }
于 2017-04-27T10:14:26.467 に答える