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

时间:2012-03-12 14:48:57

标签: wpf binding clipboard

我在WPF应用程序中有一个绑定到组合框的文本块元素,我希望在按下按钮时将文本框文本值复制到剪贴板但是我无法在后面的代码中获取文本值我无法使用文本框名称本身来引用其属性。这是我此前的问题的后续跟进 Getting XML element from a Combobox item  代码在那边,所以不想扩展问题这些是简单的两行代码

<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" />

2 个答案:

答案 0 :(得分:1)

首先,如果您认真对待任何WPF开发,我建议您查看MVVM design pattern。如果您使用的是MVVM,请使用MVVM framework。它会让你的生活变得更加轻松。

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

获得此机制后,您的SelectedQuery属性中会显示查询文本,因此您可以将SelectedQuery.Value(字符串)复制到剪贴板。

答案 1 :(得分:0)

在xaml中的datagridTemplateColumn中写入CopyingCellClipboardContent事件。 在此事件后面的代码中写下这个,

if(dataGrid1.CurrentCell!= null&amp;&amp; dataGrid1.CurrentCell.Column == e.Column) {dataGrid1.SelectionUnit = Microsoft.Windows.Controls.DataGridSelectionUnit.Cell; e.Content =((System.Data.DataRowView)(dataGrid1.CurrentCell.Item))。Row.ItemArray [4] .ToString(); }  其他  e.Content = true;

谢谢..