数据改变后更新UI(SetProperty/RaiseCanExecuteChanged)
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)的更多相关文章
- WPF 修改数据后更新UI
ObservableCollection<T> 只有项添加或删除才会更新UI 要想属性发生变动后立刻更新到UI,必须继承 INotifyPropertyChanged 接口,示例如下 pu ...
- vue中当数据改变时更新DOM
具体场景: 当vue中使用swiper, better-scroll时候,我们需要去new Swiper,new [better-scroll]来获取实例,通常我们页面的数据都是异步获取的, 会导致我 ...
- echarts在数据改变后,折线图并没有全部刷新
在做一个BI项目的时候,图表需要区分国内和国外显示.当前用户所属企业具备国内外权限的时候,展示两条图表,当查看其他企业需要根据选中的企业所具备的权限改变图表.即刚开始显示两条折线图,更改选择条件并重新 ...
- extjs grid数据改变后刷新的实现
做了一个编辑extjs grid记录的窗体,但更改数据后,怎么重新刷新grid让数据显示呢? 做了半天的尝试,其实到最后只需一句话,faint:-) this.store.reload(); 不用加任 ...
- Bundle传递数据,Handler更新UI
Bundle主要用于传递数据:它保存的数据,是以key-value(键值对)的形式存在的. Bundle经常使用在Activity之间或者线程间传递数据,传递的数据可以是boolean.byte.in ...
- Flutter学习笔记(31)--异步更新UI
如需转载,请注明出处:Flutter学习笔记(31)--异步更新UI 大家都知道,子线程不能操作UI控件,在我们Android的日常开发中,经常会遇到网络请求数据通过线程间通信,将数据发送到UI线程中 ...
- 关于Handler的理解,子线程不能更新UI的纠正和回调的思考
开发Android这么久了,总会听到有人说:主线程不能访问网络,子线程不能更新UI.Android的主线程的确不能长时间阻塞,但是子线程为什么不能更新UI呢?今天把这些东西整理,顺便在子线程更新UI. ...
- 使用Handler类来更新UI
在android里面,我们经常要上网获取一些数据,然后更新UI,但获取数据是要时间的,如果在主线程里面直接使用获取数据的代码的话.整个activity就会卡在那,直至你获取到数据更新完UI才会加载完成 ...
- 【WPF】修改数据层ViewModel后,UI界面未同步更新
界面:WPF(MVVM)中将集合类控件ItemsControl的ItemsSource绑定到了ViewModel中的ObservableCollection列表,ItemsControl.ItemTe ...
- 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~
前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...
随机推荐
- 使用Java给图片添加水印
什么是水印呢?比如使用手机拍摄一张照片的时候,照片右下角的位置显示得有日期和时间信息,那就表示一个水印. 项目开发中给图片添加水印的操作很常见,比如给图片添加日期和时间,给图片添加公司的logo之类的 ...
- 记录--纯CSS实现骚气红丝带
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在本文中,我们将探讨如何使用 CSS 以最少的代码创造出精美的 CSS 丝带形状,并最终实现下面这个效果: 下面我们使用html和css来 ...
- hdfs中acl权限管理的简单实用
1.背景 在我们开发的过程中有这么一种场景, /projectA 目录是 hadoopdeploy用户创建的,他对这个目录有wrx权限,同时这个目录属于supergroup,在这个组中的用户也具有这个 ...
- C# 消息发送
界面 frmMain using System; using System.Collections.Generic; using System.ComponentModel; using System ...
- Typora基础使用教程
Typora基础使用教程(入门级) 安装和激活 安装 typora任意地方搜索下载即可 激活 百度网盘链接链接:https://pan.baidu.com/s/1WKig_3-hkDZTRjS1rgG ...
- 冒泡排序【Java】
1 public class Paixu { 2 public static void main(String args[]) { 3 int myNum[] = {2,6,4,1,5}; 4 //从 ...
- redis,mongo,mysql,es区别
Redis.MongoDB.MySQL和Elasticsearch(ES)都是常用的数据库系统,各有不同的特点和适用场景,具体区别如下: Redis:Redis是一种高性能键值存储数据库,基于内存操作 ...
- Access文件清理占用内存
1.用access打开access.accdb文件 2.找到数据库工具的压缩和修复数据库,单击就行 3.数据库文件成功便成500K内存占用
- #二分图匹配#洛谷 5771 [JSOI2016]反质数序列
题目 给出 \(n\) 个正整数,问最大的子集使得任意两个数的和都不是质数 \(n\leq 3*10^3\) 分析 如果把两个数的和为质数连边,等价于求最大独立集. 由于只有偶数加奇数才可能产生质数( ...
- 上新啦KIT
HMS Core上新啦!分析服务区服分析全新上线:机器学习服务OCR新增手写识别服务:3D建模续扫能力更新:视频编辑服务支持自定义上传素材--更多#HMS Core#能力可点击网页链接了解. 了解更多 ...