【问题标题】:Unable to copy text to clipboard while bound绑定时无法将文本复制到剪贴板
【发布时间】:2012-03-12 14:48:56
【问题描述】:

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

【问题讨论】:

    标签: wpf binding clipboard


    【解决方案1】:

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

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

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

    【讨论】:

    • 哇,我正在阅读此链接,这将需要很长时间才能让我理解所有内容,您能否解释一下我目前必须为我的代码做什么才能使其正常工作? msdn.microsoft.com/en-us/magazine/dd419663.aspx
    • 如果你在代码后面做所有事情,那么看看c-sharpcorner.com/Resources/705/…
    • 哦,所以你想让我重新初始化查询和按钮单击处理程序中的所有内容吗?原因首先,当应用程序启动时,它将开始显示 xml 数据源中的第一项,然后它会显示用户从组合框..chat 中选择的内容?
    • 单击按钮时无需初始化组合框。您说您需要将当前选择的查询复制到剪贴板?您已经拥有当前选定的查询。组合框的选定项绑定到 SelectedQuery 属性。因此,请在按钮单击事件处理程序中访问您需要的信息。
    • private void button3_Click(object sender, RoutedEventArgs e) { string tbvalue; tbvalue = SelectedQuery.ToString();剪贴板 mycp = 新剪贴板(); mycp = tbvalue.ToString(); "I AM STUCK HERE" 在 tbvalue.ToString();无法将字符串类型隐式转换为 mainwindow.clipboard
    【解决方案2】:

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

    if (dataGrid1.CurrentCell != null && 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;

    谢谢..

    【讨论】:

      猜你喜欢
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      相关资源
      最近更新 更多