WPF ListView - Как скопировать отдельные ячейки - PullRequest
0 голосов
/ 03 мая 2011

У меня есть код, где я могу взглянуть на SelectedItem и затем вывести ToString (), чтобы получить запись в буфер обмена.

Как я могу определить, на какую ячейку щелкает пользователь правой кнопкой мыши, чтобыскопировать только эту ячейку в SelectedItem?

Например, если у меня есть Информация о заемщике и пользователь щелкает правой кнопкой мыши на фамилии, я хотел бы дать возможность просто скопировать фамилию в буфер обмена.

Спасибо!

ОБНОВЛЕНИЕ:

Вот код, который я использовал в соответствии с предложением Джоша, он прекрасно работал:

  private void BorrowerInfoCopyClicked(object sender, RoutedEventArgs e)
        {
            BorrowerViewModel vm = this.DataContext as BorrowerViewModel;
            if (vm != null)
            {
                Clipboard.SetData(DataFormats.Text, vm.CurrentTextBlockText);
            }
        }

        private void AddressCopyClicked(object sender, RoutedEventArgs e)
        {
            BorrowerViewModel vm = this.DataContext as BorrowerViewModel;
            if (vm != null)
            {
                Clipboard.SetData(DataFormats.Text, vm.CurrentTextBlockText);
            }
        }

        private void lstViews_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            BorrowerViewModel vm = this.DataContext as BorrowerViewModel;
            if (vm != null)
            {
                if (e.OriginalSource is TextBlock)
                {
                    TextBlock txtBlock = e.OriginalSource as TextBlock;
                    vm.CurrentTextBlockText = txtBlock.Text;
                }

}}

1 Ответ

2 голосов
/ 03 мая 2011

Я сделал это, обработав событие PreviewMouseRightButtonDown в ListView и проверив, является ли e.OriginalSource TextBlock. Если это так, скопируйте txtBlk.Text в буфер обмена. Этот код может находиться либо в выделенном фрагменте кода представления, содержащего ListView, либо в качестве поведения, которое вы присоединяете к ListView. Если вам нужно использовать контекстное меню для выполнения операции «Копировать», используйте поле TextBlock, которое вы используете для хранения ссылки на TextBlock, и в своем методе, который реагирует на щелчок (или выполнение команды) элемента MenuItem, вместо этого ссылайтесь на TextBlock.

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