Wpf 绑定时无法将文本复制到剪贴板

Wpf 绑定时无法将文本复制到剪贴板,wpf,binding,clipboard,Wpf,Binding,Clipboard,我在WPF应用程序中有一个绑定到组合框的textblock元素,我希望在按下按钮时将textbox文本值复制到剪贴板,但我无法在代码中获取文本值,因为我无法使用textbox名称本身引用其属性。这是我前面问题的后续 代码就在那里,所以不想扩展问题这些是简单的两行代码 <TextBox Grid.Column="1" Text="{Binding SelectedItem.Value, ElementName=QueryChooser}" Grid.ColumnSpan=

我在WPF应用程序中有一个绑定到组合框的textblock元素,我希望在按下按钮时将textbox文本值复制到剪贴板,但我无法在代码中获取文本值,因为我无法使用textbox名称本身引用其属性。这是我前面问题的后续 代码就在那里,所以不想扩展问题这些是简单的两行代码

<TextBox Grid.Column="1" 
    Text="{Binding SelectedItem.Value, ElementName=QueryChooser}" 
    Grid.ColumnSpan="2" Grid.Row="1" Height="200" HorizontalAlignment="Left" 
    Name="textBlock1"  VerticalAlignment="Top" Width="481" />

首先,如果您真的想进行任何WPF开发,我建议您研究一下。如果您使用的是MVVM,那么请使用。这会让你的生活变得更轻松

其次,您需要某种机制来调用数据上下文(MVVM中的视图模型)上的谓词。WPF提供命令,MVVM框架提供其他技术和变体


有了此机制后,您的
SelectedQuery
属性中就有了查询文本,因此您可以将
SelectedQuery.Value
(一个字符串)复制到剪贴板。

在xaml中的DataGridTemplate列中写入CopyingCellClipboardContent事件。 在此事件中,在代码隐藏中写入

if(dataGrid1.CurrentCell!=null&&dataGrid1.CurrentCell.Column==e.Column) {dataGrid1.SelectionUnit=Microsoft.Windows.Controls.DataGridSelectionUnit.Cell; e、 内容=((System.Data.DataRowView)(dataGrid1.CurrentCell.Item)).Row.ItemArray[4].ToString(); } 其他的 e、 内容=真实


谢谢..

哇,我正在阅读此链接,这将需要很长时间才能理解所有内容。请您解释一下我目前需要为代码做些什么才能使其正常工作?如果你在代码隐藏中做所有事情,那么看看哦,那么你想让我重新初始化查询和按钮点击处理程序中的所有内容吗?原因首先,当应用程序启动时,它将开始显示xml数据源中的第一个项目,然后它将显示用户从组合框中选择的内容。可能是聊天吗?单击按钮时,您不需要初始化组合框。您说过需要将当前选定的查询复制到剪贴板?您已经有了当前选择的查询。组合框的选定项已绑定到SelectedQuery属性。因此,在按钮单击事件处理程序中访问您需要的信息。私有无效按钮3_单击(对象发送者,RoutedEventArgs e){string tbvalue;tbvalue=SelectedQuery.ToString();clipboard mycp=new clipboard();mycp=tbvalue.ToString();}“我卡在这里了”在tbvalue.ToString()处获取错误;无法将字符串类型隐式转换为mainwindow.clipboard