使ViewModel属性可见在Silverlight中绑定

时间:2009-07-25 21:39:28

标签: silverlight silverlight-2.0

我将带有ObservableCollection(名为Contacts)属性的对象(名为Client)绑定到Silverlight视图。 My Client类在is上有一些字符串属性,而ObservalbeCollection在Contacts上有。我的viewmodel上有一个名为Client(实现INotifyPropertyChanged)的属性,该属性包含Client对象。如果我将视图中的ListBox绑定到对象上的ObervableCollection,如下所示:

ItemsSource =“{Binding Path = Client.Contacts,Mode = TwoWay}”

并将一个联系人项目添加到集合中,视图正确更新,并显示我新添加的联系人。这一切都很有效。

如果我在我的ViewModel上创建一个Contacts属性,就像这样         public ObservableCollection联系人         {             得到             {                  return Client.Contacts;             } 并将ListBox绑定到

ItemsSource =“{Binding Path = Contacts,Mode = TwoWay}”

视图永远不会更新。

我将联系人项目添加到客户端,如下所示:

Client.Contacts.Add(newContact)

为什么联系人列表框不会更新?我怎么能这样改变呢? Client.Contacts绑定是否可以使用?在添加新的Contact之后在代码中添加一个中断,表明新的Contact对象被添加到集合中,但视图没有看到添加。

1 个答案:

答案 0 :(得分:0)

当执行达到ItemsSource =“{Binding Path = Contacts,Mode = TwoWay}”时,看起来好像没有执行绑定。你能否验证是否在ViewModel的构造函数中实例化集合,因为我觉得在绑定时没有设置Contacts实例(null)