WPF關(guān)于綁定與更新修改
看到一些資料與教程視頻,
首先 我們先做好一個(gè)公共的INotifyPropertyChanged事件,也就是通知更新,當(dāng)然 如果你安裝了MvvmLight包,可以直接直接不用寫
public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; public void OnPropertyChanged([CallerMemberName]string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } }
再創(chuàng)建命令類
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(); } }
然后創(chuàng)建我們要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("這是個(gè)按鈕!"); } }
最后賦值到我們的對(duì)應(yīng)的頁面上
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MainViewMoel(); } }
xaml 中也要綁定對(duì)應(yīng)的控件中
<StackPanel > <TextBox Height="50" Text="{Binding Name}" x:Name="txtName" Margin="5"/> <Button Height="50" Command="{Binding ShowCommand}" x:Name="Btn" Margin="5"/> </StackPanel>
這樣就是一個(gè)測(cè)試的綁定并通知的Demo,用于以后參考
視頻講解來源WPF項(xiàng)目實(shí)戰(zhàn)合集(2022終結(jié)版)_嗶哩嗶哩_bilibili
主要是OnPropertyChanged()方法 ,能夠自定義,很方便的去使用 ,當(dāng)然 你直接使用MvvmLight包的話,也更省力

浙公網(wǎng)安備 33010602011771號(hào)