2.使用 callback
1. public string FirstName
2. {
3. get { return GetProperty(() => FirstName); }
4. set { SetProperty(() => FirstName, value, OnFirstNameChanged); }
5. }
3.如果您需要手动提高 INotifyPropertyChanged。PropertyChanged 事件针对特定属性,
使用 RaisePropertyChanged/RaisePropertiesChanged 方法。
1. public class ViewModel : BindableBase {
2. public string FullName {
3. get { return string.Format("{0} {1}", FirstName, LastName); }
4. }
5. public string FirstName {
6. get { return GetProperty(() => FirstName); }
7. set { SetProperty(() => FirstName, value, OnFirstNameChanged); }
8. }
9. public string LastName {
10. get { return GetProperty(() => LastName); }
11. set {
12. if(SetProperty(() => LastName, value))
13. RaisePropertyChanged(() => FullName);
14. }
15. }
16. void OnFirstNameChanged() {
17. RaisePropertyChanged(() => FullName);
18. }
19. }
4.在极少数情况下,当属性频繁更新时(由于计算来自 lambda 表达式的属性名和访问字
典存储的属性),应用程序性能可能会恶化。为了适应这些场景,对属性使用存储变量,
1. public class ViewModel : BindableBase {
2. static string Property1Name;
3. static ViewModel() {
4. Property1Name = BindableBase.GetPropertyName(() => new ViewModel
().Property1);
5. }
6.
评论0
最新资源