Как я могу скопировать выбранное содержимое всех ячеек в DataGrid (включая DataGridTemplateColumn) с Silverlight 4? - PullRequest
8 голосов
/ 13 августа 2010

С Silverlight 4 я могу выбрать одну или несколько ячеек (или строк и столбцов) в DataGrid, нажать Control + C, и содержимое будет скопировано в буфер обмена. Что действительно круто. После Control + V его можно вставить в Excel или другой редактор.

Однако, если один из столбцов является DataGridTemplateColumn, его значения при вставке будут пустыми. Что имеет смысл, потому что это может быть что угодно в столбце.

Как мне сказать копии Control + C, каким должно быть значение ячейки шаблона?

1 Ответ

13 голосов
/ 18 августа 2010

Оказывается, это действительно легко, если вы используете привязку данных.Все, что вам нужно сделать, это связать свойство

ClipboardContentBinding
со значением, которое вы хотите скопировать для этого столбца.

Например:

<data:DataGridTemplateColumn Header="Name" ClipboardContentBinding="{Binding Name}" SortMemberPath="Name">
  <data:DataGridTemplateColumn.CellTemplate>
     <DataTemplate>
        <HyperlinkButton Content="{Binding Name}" Margin="3" />
     </DataTemplate>
  </data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...