复制ListView单元格值

时间:2015-10-25 12:38:02

标签: wpf listview

ListView绑定到我的收藏中:

<ListView
    Name="listView"
    ItemsSource="{Binding collcection}" />

list<MyData> collcection;
public class MyData
{
   public string Name;
   public string Id;
}

<GridView.Columns>
  <GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Vendor Name"/>
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Vendor Id"/>
</GridView.Columns>

所以我希望能够右键单击特定行并复制我的2个单元格中的一个(名称或ID)。 是否可以右键单击特定行中的一个单元格并复制其值?

1 个答案:

答案 0 :(得分:0)

如果我明白你想要什么,你可以这样做:

XAML:

<ListView ItemsSource="{Binding collection}">
    <ListView.Resources>
        <Style TargetType="TextBlock">
            <EventSetter Event="MouseRightButtonUp" Handler="OnMouseRightButtonUp"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="DarkSalmon"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Id}"/>
            <GridViewColumn DisplayMemberBinding="{Binding Name}"/>
        </GridView>
    </ListView.View>
</ListView>

如您所见,我在ListView资源中为TextBlock创建了Style。 TextBlock是由ListViewItem Template创建的控件。

代码隐藏:

private void OnMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    Clipboard.SetText((sender as TextBlock).Text);
}