我使用以下代码
在ListBox
中绑定了wpf Dispatcher
Dispatcher.BeginInvoke(new Action(() =>
{
LoadData();
}));
private void LoadData()
{
// Written some logic here
}
它绑定ListBox
但是当我打电话
ListBoxItem myListBoxItem = (ListBoxItem)(routeList.ItemContainerGenerator.ContainerFromItem(item));
它总是返回null
。问题只发生在ListBox
Dispatcher
内ListBox
。如果我在类构造函数中绑定相同的synchronized
,它可以正常工作。
答案 0 :(得分:5)
项容器在单独的调度程序操作中生成。结果,你得到了空。
我们应该始终将容器生成视为异步执行的操作。
可以监听StatusChanged
的{{1}}事件,该事件提供有关是否创建ItemContainer
的信息。
因此,为了确保生成ItemConteiner
,您应该附加到ItemContainer
事件并检查StatusChanged
状态。
例如:
ContainersGenerated
您可以找到more information here。