在 DataGridTemplateColumn 内的 TextBlock 上复制 ContextMenu 上的命令
想问一下,因为以前从未在 TextBlock 上这样做过。我无法复制 DataGridTemplateColumn 的内容,其中有一个 TextBlock,并且我已为其分配了一个上下文菜单。
复制的内容是空白的。
当我在 MS Word 中尝试时,它是空白单元格。
我的模板列和上下文菜单如下。
我尝试使用文本框,但它在启用文本框并且尽管网格列是只读的情况下工作。它允许编辑,当我们禁用它时,它不会复制文本。
<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>
Thought of asking because never done this before on a TextBlock. I Am not able to copy the content of the DataGridTemplateColumn where it has a TextBlock in that and i have assigned a context menu to that.
The copied content is blank.
When I tried in MS word is Blank Cell.
My Template Column and ContextMenu are as below.
I Tried using TextBox But it work when the textbox is enabled and in-spite of grid column is readonly. It allows editing and when we disable it won't copy the text.
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么复制的内容是空字符串是因为TextBlock不支持像TextBox这样的复制、剪切和粘贴命令。因此,如果使用 TextBlock,则需要手动支持这些命令,但可以使用 TextBox 来支持复制命令,该命令可以充当 TextBlock。请检查以下内容。
[更新]
首先,下面的代码能正确执行吗?
Why the copied content is empty string is that TextBlock does not support Copy, Cut and Past Commands like TextBox. So If using TextBlock, you'll need to support these commands manually, but you can use TextBox to support the copy command, which could act as TextBlock. Please check the following.
[updated]
First of all, the code below can be executed correctly?
在我的特定情况下,我通过以下方式解决了问题:
IsReadOnly
。Command=Copy
,而是使用Command="{Binding CopyToClipboard}"
将命令绑定到行后面的 ViewModel。In my particular case, I fixed the issue by:
IsReadOnly
from the row.Command=Copy
, I usedCommand="{Binding CopyToClipboard}"
with a binding of the command to the ViewModel behind the row.