C# WPF ListView项目增加,减少,修改,实时显示

创建ListView后,进入GridView创建column集合。

xaml:

        <ListView x:Name="UserList" HorizontalAlignment="Left" Height="350" Margin="10,10,0,0" VerticalAlignment="Top" Width="766">
            <ListView.View>
                <GridView >
                    <GridViewColumn Header="序号" Width="50"/>
                    <GridViewColumn Header="账号" Width="200"/>
                    <GridViewColumn Header="密码" Width="200"/>
                </GridView>
            </ListView.View>
        </ListView>

 listview控件可以和ObservableCollection变量进行绑定,当ObservableCollection变量新增删除时,会自动向listview控件发送消息来通知控件进行绘制。

using System.Collections.ObjectModel; //ObservableCollection

private static ObservableCollection<UserData> List = new ObservableCollection<UserData>();

//UserData的定义:

    class UserData
    {
        private string _uin;
        private string _pass;
        private int _id;
        public string uin
        {
            get { return _uin; }
            set {
                _uin = value;
            }
        }
        public string pass
        {
            get { return _pass; }
            set {
                _pass = value;
            }
        }
        public int id
        {
            get { return _id; }
            set {
                _id = value;
            }
        }
        public UserData(int id ,string uin, string pass)
        {
            _id = id;
            _uin = uin;
            _pass = pass;
        }

}

定义后,还需要与控件进行绑定,为此需要修改xaml。

xaml:

                    <GridViewColumn Header="序号" Width="50" DisplayMemberBinding="{Binding id}"/>
                    <GridViewColumn Header="账号" Width="200" DisplayMemberBinding="{Binding uin}"/>
                    <GridViewColumn Header="密码" Width="200" DisplayMemberBinding="{Binding pass}"/>

 代码:

        public MainWindow()
        {
            InitializeComponent();
            UserList.ItemsSource = List;
        }

但是ObservableCollection类型只是在新增删除时通知控件,在修改变量时不会通知,所以我们需要在定义自定义变量类型时加入通知机制。

using System.ComponentModel; //INotifyPropertyChanged

class UserData :INotifyPropertyChanged //通知接口
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private string _uin;
        private string _pass;
        private int _id;
        public string uin
        {
            get { return _uin; }
            set {
                _uin = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("uin"));
            }
        }
        public string pass
        {
            get { return _pass; }
            set {
                _pass = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("pass"));
            }
        }
        public int id
        {
            get { return _id; }
            set {
                _id = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("id"));
            }
        }
        public UserData(int id ,string uin, string pass)
        {
            _id = id;
            _uin = uin;
            _pass = pass;
        }
    }

这样就实现了listview 增加,减少,修改项目功能了。 

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值