WPF使用集合数据双向绑定

WPF使用集合数据双向绑定

应该在实现了INotifyPropertyChanged的viewmodel使用observablecollection,在与xaml进行绑定时候。SaleCommodityItemViewModel这个object应该也是继承实现了接口的BaseViewModel。这样可以通知到UI的更新

public class VM:BaseViewModel
{
        [AlsoNotifyFor("IsDisplaySaleCommodityList")]
		public ObservableCollection<SaleCommodityItemViewModel> SaleCommodities { get; set; }=new ObservableCollection<SaleCommodityItemViewModel>();
		public bool IsDisplaySaleCommodityList=> SaleCommodities.Count > 0;
}

假如你使用Fody,使用AlsoNotifyFor实现属性更改通知,需要注意的是当将此特性应用于可观察集合属性的时候,将不能在进行例如Add操作时候改变其他属性值,他无法得到通知,因为对于ObservableCollection集合来说,AlsoNotifyFor特性监听的是集合属性的对象引用SaleCommodities ,如果你重置SaleCommodities 对象为一个新的new的对象,将会得到通知。 为了Add等集合操作时候能够通知其他属性,应该使用如下方式

SaleCommodities.CollectionChanged += (s, e) =>
            {
                OnPropertyChanged("IsDisplaySaleCommodityList");
            };
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值