WPF 绑定时List,ObservableCollection和CollectionView的区别

400 阅读1分钟

WPF亮点之一就是可以使用双向绑定,实现前后端的分离。在绑定的时候,前端Xaml文件需要绑定ViewModel中的字段。 绑定字段可以分几种类型

  1. T 属性,在属性的Set方法中需要调用PropertyChanged方法,用于通知界面
  2. List 属性,与UI中含有Items的控件绑定
  3. ObservableCollection 属性,与UI中含有Items的控件绑定,与List 不同的是,ObserverableCollection 在该集合中添加一个T,该属性会通知界面。
  4. CollectionView属性 实现的功能是可以对List 或者 ObservableCollection进行筛选,移动CurrentItem。

关键代码如下:

 public class MainVM : INotifyPropertyChanged
    {
        public MainVM()
        {
            this.Search = "kun";
        }
        //public List<User> Users { get; set; }
        public ObservableCollection<User> Users { get; set; }
        public ICollectionView _CollectionView
        {
            get
            {
                return CollectionViewSource.GetDefaultView(Users);
            }
        }
        private string _search;

        public event PropertyChangedEventHandler PropertyChanged;

        public string Search
        {
            get
            {
                return _search;
            }
            set
            {
                _search = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Search"));
                _CollectionView?.Refresh();
            }
        }

    }

详细Demo请下载 pan.baidu.com/s/1R7Sllbsl… 提取码: jybx 另外,有人知道怎么在Markdown中添加附件吗,如果知道请告知,感谢