数据改变后更新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以及一个获取当前电量多少的按钮,想知道 ...
随机推荐
- 开源推荐|简洁且强大的开源堡垒机OneTerm
在运维的日常工作中,登陆服务器操作不可避免,为了更安全的管控服务器,但凡有点规模的公司都会上线堡垒机系统,堡垒机能够做到事前授权.事中监控.事后审计,同时也可以满足等保合规要求.提到堡垒机,大伙第一时 ...
- App磁盘沙盒工具实践
目录介绍 01.磁盘沙盒的概述 1.1 项目背景说明 1.2 沙盒作用 1.3 设计目标 02.Android存储概念 2.1 存储划分介绍 2.2 机身内部存储 2.3 机身外部存储 2.4 SD卡 ...
- 前端优化 之 preload
为了优化我们公司网站的性能,我最近引入了浏览器预加载技术(Preload). 这项技术可以显著减少级联情况,提高资源加载的并行度,从而加速网站的加载速度. Preload的原理 Preload的原理是 ...
- 一周内容分享(第 10 期):别让自己"墙"了自己
这里记录过去一周,我看到的值得分享的东西. 一方面是整理记录一下自己一周的学习,另一方面也是期待自己有更多的输出,有更多的价值. 周刊开源(Github:wmyskxz/weekly),欢迎提交 is ...
- 手机,IPAD查看eagle素材库
把eagle素材库塞进手机里是一种什么样的体验?手机和ipad也能查看eagle素材库,随时随地查询浏览素材. 先看使用截图 实现原理: 在任意电脑,服务器或者nas中安装PicHome系统.在Pic ...
- 一个基于.NET Core构建的简单、跨平台、模块化的商城系统
前言 今天大姚给大家分享一个基于.NET Core构建的简单.跨平台.模块化.完全开源免费(MIT License)的商城系统:Module Shop. 商城后台管理端功能 商品:分类.品牌.单位.选 ...
- cadence软件画版图操作
cadence软件操作 1.原理图设计 电路的原理图设计和许多的电路设计软件是类似的,这里大致介绍一下基本的操作. 首先是新建一个cell的原理图: library manager>file&g ...
- Python爬虫爬取国家统计局网站【统计用区划和城乡划分代码】并存入MySQL数据库
国家统计局网站相关分级页面截图 基本思路 爬取每个页面的a标签内容,生成省市两级数据字典,最后合成区县对应的链接,爬取第三层区划代码和名字,结合省市两级名字生成最后的标准. 代码 1 import p ...
- 7 CSS选择器优先级
7 选择器优先级 所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序.样式表中的特殊性描述了不同规则的相对权重. /* !important > 行内样式>ID选择器 > ...
- #轮廓线dp,模型转换#洛谷 3226 [HNOI2012]集合选数
题目 问有多少个集合 \(S\) 是 \([1,n]\) 的子集, 并且 \(\forall a,b\in S,a|b\),满足 \(\frac{b}{a}\neq \{2,3\}\) 分析 可以发现 ...