Wpf ItemContainerGenerator.ContainerFromItem返回null

时间:2016-07-05 09:57:40

标签: c# wpf listbox

我使用以下代码

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 DispatcherListBox。如果我在类构造函数中绑定相同的synchronized,它可以正常工作。

1 个答案:

答案 0 :(得分:5)

项容器在单独的调度程序操作中生成。结果,你得到了空。

我们应该始终将容器生成视为异步执行的操作。

可以监听StatusChanged的{​​{1}}事件,该事件提供有关是否创建ItemContainer的信息。

因此,为了确保生成ItemConteiner,您应该附加到ItemContainer事件并检查StatusChanged状态。

例如:

ContainersGenerated

您可以找到more information here