Установить событие CopyingRowClipboardContent динамически для всех DataGrids - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу иметь возможность копировать ячейку вместо строки, когда я нажимаю Ctrl + C в DataGrid, и я обнаружил, что могу сделать это, используя событие CopyingRowClipboardContent и обработчик:

Private Sub DataGrid_CopyingRowClipboardContent(ByVal sender As Object, ByVal e As DataGridRowClipboardEventArgs)
    Dim currentCell = e.ClipboardRowContent(dataGrid.CurrentCell.Column.DisplayIndex)
    e.ClipboardRowContent.Clear()
    e.ClipboardRowContent.Add(currentCell)
End Sub

Я хотел бы назначить это поведение глобально для любой DataGrid, созданной во время выполнения (вместо того, чтобы возвращаться к моему коду и добавлять обработчик ко всей DataGrid один за другим).

Я попытался добавить следующую строку в мой <Window.Resources> код:

<Style x:Key="DataGridCustomStyle" TargetType="{x:Type DataGrid}">
    <EventSetter Event="CopyingRowClipboardContent" Handler="Datagrid_CopyingRowClipboardContent" />
</Style>

Но я получаю сообщение об ошибке, говорящее, что CopyingRowClipboardContent должен быть событием RoutedEvent.

1 Ответ

0 голосов
/ 16 апреля 2019

Я прочитал ваш вопрос после комментирования, и я думаю, что мы не ищем того же ...

Если вы просто хотите иметь возможность выбрать ОДНУ ячейку вместо всей строки, тогда я думаюВы можете перейти с

<Style x:Key="DataGridCustomStyle" TargetType="{x:Type DataGrid}">
    <!--Copy only selected content without header-->
    <Setter Property="ClipboardCopyMode" Value="ExcludeHeader" />
    <!--Able to select many cells-->
    <Setter Property="SelectionMode" Value="Extended" />
    <!--Able to select cells or entire row/column-->
    <Setter Property="SelectionUnit" Value="CellOrRowHeader" />
</Style>

Таким образом, если у пользователя выбрана только одна ячейка, и нажмите Ctrl + C, только содержимое выбранной ячейки будет вставлено в буфер обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...