WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged
WPF MVVM模式开发实现简明教程 2 初识 INotifyPropertyChanged
WPF MVVM模式开发实现简明教程 3-1 BaseCommand
WPF MVVM模式开发实现简明教程 4 ViewModelBase
WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定
WPF MVVM模式开发简明实现教程 7 DevExpress MVVM
MVVM的核心是一切皆可Binding(绑定),属性、样式、资源、事件等等都可以绑定,绑定后就是通过INotifyPropertyChanged通知View更新。
首先为前面的View ButtonViewUserControl增加DataContext,
增加命名空间
xmlns:viewmodel="clr-namespace:WpfApp6.ViewModel"
添加DataContext为对应的ViewModel
<UserControl.DataContext>
<viewmodel:ButtonViewModel />
</UserControl.DataContext>
如果是MainWindow的DataContext,需要改为<Window.DataContext>
为ViewModel添加INotifyPropertyChanged
using System.ComponentModel;
public class ButtonViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
ButtonViewModel需要实现INotifyPropertyChanged接口,并实现OnPropertyChanged事件
修改View的Binding
<Button Content="{Binding ButtonContent}">
</Button>
在ViewModel里定义绑定的ButtonContent
private string buttonContent;
public string ButtonContent
{
get { return buttonContent; }
set
{
buttonContent = value;
OnPropertyChanged("ButtonContent");
}
}
在 ButtonViewUserControl.xaml.cs 初始化时设置ButtonContent的值
public ButtonViewUserControl()
{
InitializeComponent();
var model = this.DataContext as ButtonViewModel;
model.ButtonContent = "Binding";
}
首先根据this.DataContext获取对应的ButtonViewModel,然后ButtonViewModel里的各个public的值都可以改了,同时View会更新

浙公网安备 33010602011771号