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包的话,也更省力
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)