WPF的ListView的简单使用

本文详细描述了如何在C#中使用ListView控件,包括设置列头、ItemContainerStyle和ContextMenu,以及实现双击事件和右键菜单功能,同时展示了如何将ListView与ObservableCollection绑定和处理用户交互。
摘要由CSDN通过智能技术生成

1.界面代码

<ListView Margin="10" Name="lvUsers" MouseDoubleClick="lvUsers_MouseDoubleClick" ItemsSource="{Binding DesignViewList}">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="描述" Width="200"  DisplayMemberBinding="{Binding Desc}" />
                        <GridViewColumn Header="轴" Width="80"  DisplayMemberBinding="{Binding Axis}" />
                        <GridViewColumn Header="动作" Width="80" DisplayMemberBinding="{Binding Action}" />
                        <GridViewColumn Header="位置" Width="80" DisplayMemberBinding="{Binding Position}" />
                    </GridView>
                </ListView.View>
                <ListView.ItemContainerStyle>
                    <Style TargetType="ListViewItem">
                        <Setter Property="Height" Value="30" />
                    </Style>
                </ListView.ItemContainerStyle>
                <ListView.ContextMenu>
                    <ContextMenu>
                        <MenuItem Name="MenuItem1" Header="删除" Click="MenuItem1_Click"/>
                        <MenuItem Name="MenuItem2" Header="清空" Click="MenuItem2_Click"/>
                    </ContextMenu>
                </ListView.ContextMenu>
            </ListView>

2.后台代码

//声明变量,将界面ListView与List绑定
private static ObservableCollection<User> List = new ObservableCollection<User>();

//ListView双击事件
private void lvUsers_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (lvUsers.SelectedIndex == -1)
            {
                User user = new User();
                user.Desc = "复位";
                user.Axis = "焦距";
                user.Action = "复位";
                user.Position = 0;
                ActionsWnd actionsWnd = new ActionsWnd(user);
                if (true == actionsWnd.ShowDialog())
                {
                    //List新增,则在界面也会新增
                    List.Add(actionsWnd.WndUser);
                }
            }
            else
            {
                Console.WriteLine("11");
                var user = lvUsers.SelectedItem as User;

                ActionsWnd actionsWnd = new ActionsWnd(user);
                if (true == actionsWnd.ShowDialog())
                {
                    int nSelect = lvUsers.SelectedIndex;
                    List[nSelect] = actionsWnd.WndUser;
                }
            }
        }

//ListView添加的右键菜单事件
private void MenuItem1_Click(object sender, RoutedEventArgs e)
{
   int nIndex = lvUsers.SelectedIndex;
   if(nIndex >-1)
   {
       List.RemoveAt(nIndex);
   }
}

private void MenuItem2_Click(object sender, RoutedEventArgs e)
{
    List.Clear();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值