MVVM模式中,ItemsControl控件的DataTemplate中的Button按钮绑定ViewMode中的ICommand,ItemsControl控件的ItemsSource绑定的集合为ViewMode类型,在集合中增加对象后按钮指令不工作
时间: 2024-02-23 09:02:45 浏览: 112
数据源控件和数据源绑定
这种情况可能是由于集合没有实现 `INotifyCollectionChanged` 接口,导致界面没有收到集合变化的通知,从而无法更新按钮的指令绑定。你可以在集合中添加或删除对象时,手动触发 `PropertyChanged` 和 `CollectionChanged` 事件,例如:
```c#
// 假设你的集合定义如下:
public ObservableCollection<MyViewModel> Items { get; set; }
// 在添加或删除对象时,手动触发事件:
Items.Add(new MyViewModel());
OnPropertyChanged(nameof(Items));
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, newItem));
```
注意,这里的 `OnPropertyChanged` 和 `OnCollectionChanged` 是你自己定义的方法,在方法中调用 `PropertyChanged` 和 `CollectionChanged` 事件即可。如果你使用的是 `ObservableCollection` 类型,它已经实现了 `INotifyCollectionChanged` 接口,你只需要在集合中添加或删除对象时,直接调用 `Add` 或 `Remove` 方法即可自动触发事件。
阅读全文