刚用Databinding的同学会经常有各种各样失败的原因。最近在对Databinding对Collection做绑定的时候,犯了一个错误,感觉挺常见的,分享记录下:很多初学者大概以为ObservableCollection<> 任何改变的消息都会发一个事件告诉UI,但实际上是对ObservableCollection<>重新new一个地址,它并不会把新New 的地址发消息告诉UI,UI记录的source target的地址依然是之前的,除非你自己发消息告诉UI。
用一个简单的Databinding的例子说明,如下:
在UI 的ListBox绑定显示一个ObservableCollection<>,当点击了testButton后,在后台修改数据并显示。
点击testButton后
具体代码:
In XAML:
<UserControl x:Class="DataBindingReference.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.m