13

私は持っていDataGridます。しかし、イベントでフォーカスされたセル値を取得したいですCopyingRowClipboardContent。しかしe.ClipboardRowContentSelectionUnit. また、データグリッドの選択単位を変更してはいけません。問題を解決するには、フォーカスされたセル列番号を取得する必要があります。次に、からすべての列の値を削除しますclipboarcContentCopyingRowClipboardContentイベントでフォーカスされたセルを取得するにはどうすればよいですか?

4

4 に答える 4

19

Farhadの回答の改良版

private void DataGrid_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
    var currentCell = e.ClipboardRowContent[ dataGrid.CurrentCell.Column.DisplayIndex];
    e.ClipboardRowContent.Clear();
    e.ClipboardRowContent.Add( currentCell );
}
于 2013-08-22T11:57:00.180 に答える
5

クリップボードの内容を制御するために、次のコードを使用することもできます。

Clipboard.SetText("some value");
于 2012-09-20T12:25:52.703 に答える
1

私は解決策を見つけます。まず、フォーカスされたセルの列番号が必要です。私はこのコードでそれを得ることができました:

DataGridResults.CurrentCell.Column.DisplayIndex;

その後、CopyingRowClipboardContent他のすべての列の値を削除する必要があります。

private void DataGridResults_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
    int y = 0;

    for (int i = 0; i < e.EndColumnDisplayIndex; i++)
    {
        if (i != DataGridResults.CurrentCell.Column.DisplayIndex)
        {
            e.ClipboardRowContent.RemoveAt(i - y);
            y++;
        }
    }
}
于 2012-09-20T11:57:53.973 に答える