我有一个ListBox与Foo对象,并基于一些事件我禁用/启用列表框中的ListBoxItems。使用ListBox.Items属性,我发现Foo对象,并从我了解我需要使用以下函数获取Foo的ListBoxItem容器。正确?如何在“绑定时间”获取ListBox中的项目ListBoxItem
其实我有继承ListBox和增加了一个额外的属性给它一个自定义的控制FilteringListBox。上面的代码位于自定义控件的后面代码中,并且在FilteringListBox完成创建时工作得很好。然而,我的问题是,当某些财产受到约束时,我会尝试这样做。当绑定时,我有一个属性FilteringCollection和一个PropertyCallback。在这个回调函数中,我将存储FilteringCollection,但是我还将执行初始过滤 - 运行set集合并禁用表示FilteringCollection中的Foo的任何ListBoxItem。
这是我遇到问题的地方。我找到了所有的Foos,所以我确认了ItemsSource被设置了,但是做了ItemContainerGenerator.ContainerFromItem我得到了null。这就像ListBoxItems尚未创建。他们不是吗?这里是我的绑定:
<custom:FilteringListBox ItemsSource="{Binding AvailableFoos}" FilteringCollection="{Binding AlreadyIncludedFoos}"></custom:FilteringListBox>
所以;要么:我怎样才能获得“绑定时间”的ListBoxItems?或者 - 如果我不能;是否有一些事件我可以重写,告诉我ListBox完成创建ListBoxItems?试图OnInitialized没有运气...