View代码

 1  <StackPanel>
2 <TextBlock Text="方法一"></TextBlock>
3 <TextBox Text="{Binding Value1}"></TextBox>
4 <TextBlock Text="方法二"></TextBlock>
5 <TextBox Text="{Binding Value2}"></TextBox>
6 <TextBlock Text="方法三"></TextBlock>
7 <TextBox Text="{Binding Value3}"></TextBox>
8 <TextBlock Text="方法四"></TextBlock>
9 <TextBox Text="{Binding Value4}"></TextBox>
10 <TextBlock Text="方法五"></TextBlock>
11 <TextBox Text="{Binding Value5}"></TextBox>
12 <Button Content="方法一" Command="{Binding AddCommand1}"></Button>
13 <Button Content="方法二" Command="{Binding AddCommand2}"></Button>
14 <Button Content="方法三" Command="{Binding AddCommand3}"></Button>
15 <Button Content="方法四" Command="{Binding AddCommand4}"></Button>
16 <Button Content="方法五" Command="{Binding AddCommand5}"></Button>
17 </StackPanel>

ViewModel代码

  1  public class MainWindowViewModel : BindableBase
2 {
3 private string _title = "Prism命令学习";
4 public string Title
5 {
6 get
7 {
8 return _title;
9 }
10 set
11 {
12 SetProperty(ref _title, value);
13 }
14 }
15
16
17 public MainWindowViewModel()
18 {
19 //方法一
20 AddCommand1 = new DelegateCommand(Add1);
21
22 //方法二
23 AddCommand2 = new DelegateCommand(Add2);
24 //方法三
25 AddCommand3 = new DelegateCommand(Add3);
26 //方法四
27 AddCommand4 = new DelegateCommand(Add4);
28 //方法五:布尔类型,可以使控件不能使用变灰
29 AddCommand5 = new DelegateCommand(Add5).ObservesCanExecute(() => Value5);
30
31 }
32 private Random random = new Random();
33 //方法一
34 private string _value1 = "Prism命令学习";
35 public string Value1
36 {
37 get
38 {
39 return _value1;
40 }
41 set
42 {
43 SetProperty(ref _value1, value);
44 }
45 }
46 public DelegateCommand? AddCommand1
47 {
48 set; get;
49 }
50 private void Add1()
51 {
52 //写入需要执行的代码;
53
54 Value1 =random.Next().ToString();
55 MessageBox.Show(Value1);
56 }
57
58
59
60 //方法二
61 private string _value2 = "Prism命令学习";
62 public string Value2
63 {
64 get
65 {
66 return _value2;
67 }
68 set
69 {
70 SetProperty(ref _value2, value);
71 AddCommand2.RaiseCanExecuteChanged();
72 }
73 }
74 public DelegateCommand? AddCommand2
75 {
76 set; get;
77 }
78
79
80 private void Add2()
81 {
82 //写入需要执行的代码;
83
84 Value2= random.Next().ToString();
85 MessageBox.Show(Value2);
86 }
87
88
89 //方法三
90 private string _value3 = "Prism命令学习";
91 public string Value3
92 {
93 get
94 {
95 return _value3;
96 }
97 set
98 {
99 _value3 = value;
100 RaisePropertyChanged(nameof(Value3));
101 //也可以这样
102 RaisePropertyChanged();
103
104 }
105 }
106 public DelegateCommand? AddCommand3
107 {
108 set; get;
109 }
110
111
112 private void Add3()
113 {
114 //写入需要执行的代码;
115
116 Value3 = random.Next().ToString();
117 MessageBox.Show(Value3);
118 }
119 //方法四
120 private string _value4 = "Prism命令学习";
121 public string Value4
122 {
123 get
124 {
125 return _value4;
126 }
127 set
128 {
129 _value4 = value;
130 OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs(nameof(Value4)));
131
132 }
133 }
134 public DelegateCommand? AddCommand4
135 {
136 set; get;
137 }
138
139
140 private void Add4()
141 {
142 //写入需要执行的代码;
143
144 Value4 = random.Next().ToString();
145 MessageBox.Show(Value4);
146 }
147 //方法五
148 private bool _value5= false;
149 public bool Value5
150 {
151 get
152 {
153 return _value5;
154 }
155 set
156 {
157 _value5 = value;
158 SetProperty(ref _value5, value);
159
160
161 }
162 }
163 public DelegateCommand? AddCommand5
164 {
165 set; get;
166 }
167
168
169 private void Add5()
170 {
171 //写入需要执行的代码;
172
173 Value5=true;
174 MessageBox.Show(Value5.ToString());
175 }
176 }

数据改变后更新UI(SetProperty/RaiseCanExecuteChanged)的更多相关文章

  1. WPF 修改数据后更新UI

    ObservableCollection<T> 只有项添加或删除才会更新UI 要想属性发生变动后立刻更新到UI,必须继承 INotifyPropertyChanged 接口,示例如下 pu ...

  2. vue中当数据改变时更新DOM

    具体场景: 当vue中使用swiper, better-scroll时候,我们需要去new Swiper,new [better-scroll]来获取实例,通常我们页面的数据都是异步获取的, 会导致我 ...

  3. echarts在数据改变后,折线图并没有全部刷新

    在做一个BI项目的时候,图表需要区分国内和国外显示.当前用户所属企业具备国内外权限的时候,展示两条图表,当查看其他企业需要根据选中的企业所具备的权限改变图表.即刚开始显示两条折线图,更改选择条件并重新 ...

  4. extjs grid数据改变后刷新的实现

    做了一个编辑extjs grid记录的窗体,但更改数据后,怎么重新刷新grid让数据显示呢? 做了半天的尝试,其实到最后只需一句话,faint:-) this.store.reload(); 不用加任 ...

  5. Bundle传递数据,Handler更新UI

    Bundle主要用于传递数据:它保存的数据,是以key-value(键值对)的形式存在的. Bundle经常使用在Activity之间或者线程间传递数据,传递的数据可以是boolean.byte.in ...

  6. Flutter学习笔记(31)--异步更新UI

    如需转载,请注明出处:Flutter学习笔记(31)--异步更新UI 大家都知道,子线程不能操作UI控件,在我们Android的日常开发中,经常会遇到网络请求数据通过线程间通信,将数据发送到UI线程中 ...

  7. 关于Handler的理解,子线程不能更新UI的纠正和回调的思考

    开发Android这么久了,总会听到有人说:主线程不能访问网络,子线程不能更新UI.Android的主线程的确不能长时间阻塞,但是子线程为什么不能更新UI呢?今天把这些东西整理,顺便在子线程更新UI. ...

  8. 使用Handler类来更新UI

    在android里面,我们经常要上网获取一些数据,然后更新UI,但获取数据是要时间的,如果在主线程里面直接使用获取数据的代码的话.整个activity就会卡在那,直至你获取到数据更新完UI才会加载完成 ...

  9. 【WPF】修改数据层ViewModel后,UI界面未同步更新

    界面:WPF(MVVM)中将集合类控件ItemsControl的ItemsSource绑定到了ViewModel中的ObservableCollection列表,ItemsControl.ItemTe ...

  10. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

随机推荐

  1. TP6框架--EasyAdmin学习笔记:实现数据库增删查改

    这是我写的学习EasyAdmin的第三章,这一章我给大家分享下如何进行数据库的增删查改 上一章链接:点击这里前往 上一章我们说到,我仿照官方案例,定义了一条路由goodsone和创建了对应数据库,我们 ...

  2. 《Go程序设计语言》学习笔记之slice

    <Go程序设计语言>学习笔记之slice 一. 环境 Centos8.5, go1.17.5 linux/amd64 二. 概念 1) slice 表示一个拥有相同类型元素的可变长度的序列 ...

  3. AXI自定义IP之UART调试

    AXI自定义IP之UART调试 1.实验原理 前面的自定义IP中已经将AXI总线的大部分接口设置都一一验证了.基本掌握了关键接受寄存器slv_reg和发送寄存器data_reg_out,可以基本实现简 ...

  4. es通过时间聚合查询一周中每天的数据平均值

    场景回顾:设备上传的数据保存在es中,大屏模块要统计本周的数据折线图(一个设备三分总上传一次,所以拟定每天聚合求个平均值) kibana查询请求 GET xxxx_2022-10/_search { ...

  5. 如在 Java 中分割 Excel 工作表

    前言 在Excel中创建的大多数商业报告不是单页的文档,而是包含了多个上下文相关的信息,这些信息被存储在多个工作表中.例如我们的一些地区销售报告.按部门分类的员工记录.每家店铺的库存清单等. 然而,随 ...

  6. OpenHarmony社区运营报告(2023年3月)

      本月快讯 • <OpenHarmony 2022年度运营报告>于3月正式发布,2022年OpenAtom OpenHarmony(以下简称"OpenHarmony" ...

  7. JS 取Json中对象特定属性值

    解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...

  8. BiLSTM算法(一)

    原理分析: BiLSTM(双向长短期记忆网络) 是一种循环神经网络(RNN)的变体,它在自然语言处理任务中非常有效,其中包括给定一个长句子预测下一个单词. 这种效果的主要原因包括以下几点: 长短期记忆 ...

  9. HDC2021技术分论坛:跨端分布式计算技术初探

    作者:zhengkai,分布式通信首席技术专家 当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等.然而现实中的移动设备,因为便携性要求受限于尺寸.电池容量以及温控 ...

  10. TextIn.com API使用心得

    我们参加了本次大学生创新创业服务外包大赛,在项目中大量使用到了合合信息所提供的api进行相关功能实现,所以在这里写一篇博客分享一下我们在项目的实际推进中关于TextIn.com API使用心得 我们的 ...