WPF亮点之一就是可以使用双向绑定,实现前后端的分离。在绑定的时候,前端Xaml文件需要绑定ViewModel中的字段。
绑定字段可以分几种类型
关键代码如下:
public class MainVM : INotifyPropertyChanged
public MainVM()
this.Search = "kun";
//public List<User> Users { get; set; }
public ObservableCollection<User> Users { get; set; }
public ICollectionView _CollectionView
return CollectionViewSource.GetDefaultView(Users);
private string _search;
public event PropertyChangedEventHandler PropertyChanged;
public string Search
return _search;
_search = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Search"));
_CollectionView?.Refresh();
该Demo中还使用了Selector.IsSynchronizedWithCurrentItem属性,当该属性为True时,当selectedItem发生变化,会同步变化CurrentItem.当一个属性被多个控件绑定时会用到。比如该Demo中MainVM 中的Users被Listbox和ContentControl绑定,其中ContentControl绑定的是该属性的currentItem。
关键代码如下