WPF关于绑定与更新修改
看到一些资料与教程视频,
首先 我们先做好一个公共的INotifyPropertyChanged事件,也就是通知更新,当然 如果你安装了MvvmLight包,可以直接直接不用写
public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; public void OnPropertyChanged([CallerMemberName]string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } }
再创建命令类
public class MyCommand : ICommand { Action executeAction; public MyCommand(Action action) { executeAction = action; } public event EventHandler? CanExecuteChanged; public bool CanExecute(object? parameter) { return true; } public void Execute(object? parameter) { executeAction(); } }
然后创建我们要ViewModel类,要引用到前面写好的通知更新类, 把方法放在set中,也就是OnPropertyChanged()方法,MvvmLight包是RaisePropertyChanged()方法
public class MainViewMoel:ViewModelBase { public MainViewMoel() { Name = "GGG"; ShowCommand = new MyCommand(Show); } public MyCommand ShowCommand { get; set; } private string name =""; public string Name { get { return name; } set { name = value;OnPropertyChanged(); } } public void Show() { Name = "1111111111"; MessageBox.Show("这是个按钮!"); } }
最后赋值到我们的对应的页面上
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MainViewMoel(); } }
xaml 中也要绑定对应的控件中
<StackPanel > <TextBox Height="50" Text="{Binding Name}" x:Name="txtName" Margin="5"/> <Button Height="50" Command="{Binding ShowCommand}" x:Name="Btn" Margin="5"/> </StackPanel>
这样就是一个测试的绑定并通知的Demo,用于以后参考
视频讲解来源WPF项目实战合集(2022终结版)_哔哩哔哩_bilibili
主要是OnPropertyChanged()方法 ,能够自定义,很方便的去使用 ,当然 你直接使用MvvmLight包的话,也更省力

浙公网安备 33010602011771号