在我的Silverlight 4项目中,我喜欢将ReadOnlyObservableCollection绑定到Button属性。该集合是类的一部分,该类绑定到UserControl的DataContect,其中包含Button。
<Button Visibility="{Binding Children, Converter={StaticResource ConvertHasListItems2Visibility}}" />
在创建控件时第一次调用转换器,但在此之后,当我向集合中添加或删除项时,不会调用它。我用断点检查了这个。我甚至尝试绑定到ObservableCollection,但是存在同样的问题。 绑定到我的类的另一个属性工作(我的类实现INotifyPropertyChanged)。
绑定到(ReadOnly)ObservableCollection有什么特别之处,当它的元素发生变化(添加或删除,确切)时应该通知吗?
提前致谢,
弗兰克
伊迪丝包括收集声明:
public class MyClass
{
private ObservableCollection<IServiceItemVMBase> _children;
private ReadOnlyObservableCollection<IServiceItemVMBase> _childrenReadOnly;
public ViewModelBase(IServiceObjectBase serviceObject, IServiceItemVMBase parent)
{
_children = new ObservableCollection<IServiceItemVMBase>();
_childrenReadOnly = new ReadOnlyObservableCollection<IServiceItemVMBase>(_children);
}
public ReadOnlyObservableCollection<IServiceItemVMBase> Children
{
get { return _childrenReadOnly; }
}
}