2011-10-26 8 views
2

TextBlockで前にこれを実行したことがないので、質問していました。私はDataGridTemplateColumnの内容をコピーすることができません.DataGridTemplateColumnにはTextBlockがあり、コンテキストメニューが割り当てられています。TextBlockの上のContextMenuのコピーコマンドDataBridTemplateColumnの中の

コピーされたコンテンツは空白です。

私がMSワードで試したところ、空白セルです。

テンプレートの列とコンテキストメニューは、以下のとおりです。

私はTextBoxを使用しようとしましたが、テキストボックスが有効で、グリッド列のインフィニティが読み取り専用の場合に機能します。編集が可能で、無効にするとテキストはコピーされません。

<DataGridTemplateColumn Header="Details" Width="*" IsReadOnly="True"> 
    <DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
      <Grid> 
      <TextBlock Text="{Binding details}" TextWrapping="Wrap"> 
       <TextBlock.ContextMenu> 
       <ContextMenu> 
        <MenuItem Header="Copy" Command="Copy"></MenuItem>  
       </ContextMenu> 
       </TextBlock.ContextMenu> 
      </TextBlock> 
      </Grid> 
    </DataTemplate> 
</DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

答えて

2

コピーされたコンテンツは、空の文字列である理由は、TextBlockには、コピー、カットとのTextBoxのような過去のコマンドをサポートしていないということです。したがって、TextBlockを使用する場合は、これらのコマンドを手動でサポートする必要がありますが、TextBlockを使用してTextBlockとして機能するcopyコマンドをサポートすることができます。以下をご確認ください。

<TextBox Background="Transparent" BorderThickness="0" Text="{Binding details}" IsReadOnly="True" TextWrapping="Wrap"> 
    <TextBox.ContextMenu> 
     <ContextMenu> 
      <MenuItem Header="Copy" Command="Copy"></MenuItem> 
     </ContextMenu> 
    </TextBox.ContextMenu> 
</TextBox> 

[更新]

まず、以下のコードが正しく実行することができますか?

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <TextBox Background="Transparent" BorderThickness="0" Text="test" IsReadOnly="True" TextWrapping="Wrap"> 
      <TextBox.ContextMenu> 
       <ContextMenu> 
        <MenuItem Header="Copy" Command="Copy"></MenuItem> 
       </ContextMenu> 
      </TextBox.ContextMenu> 
     </TextBox> 
    </Grid> 
</Window> 
+0

まだ動作していません...空白のコピーされたセルを返します。 –

+0

@DOTNETBEE:私の場合、正しく実行されています。更新された回答コードとして、Bindingではなく文字列値でTextを設定してみてください。 –

+0

@DOTNETBEE:私はあなたの意味を完全に理解していません。 「テキストボックスを無効にしても機能しない」とはどういう意味ですか? –