首页 文章

使ViewModel属性可见在Silverlight中绑定

提问于
浏览
0

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

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

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

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

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

视图永远不会更新 .

我将Contact项添加到客户端,如下所示:

Client.Contacts.Add(newContact)

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

1 回答

  • 0

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

相关问题