gpt4 book ai didi

c# - Wpf ItemContainerGenerator.ContainerFromItem 返回 null

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:50 24 4
gpt4 key购买 nike

我一直在使用以下代码在 Dispatcher 中绑定(bind) wpf ListBox

 Dispatcher.BeginInvoke(new Action(() =>
{
LoadData();
}));

private void LoadData()
{
// Written some logic here
}

它很好地绑定(bind)了 ListBox 但是当我调用

ListBoxItem myListBoxItem = (ListBoxItem)(routeList.ItemContainerGenerator.ContainerFromItem(item));

它总是返回null。只有当我在Dispatcher 中绑定(bind)ListBox 时才会出现问题。如果我在类构造函数中绑定(bind)相同的 ListBox,它工作正常。

最佳答案

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

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

可以监听 ItemContainerStatusChanged 事件,它提供有关是否创建了 ItemConteiner 的信息。

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

例如:

yourListBox.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged);  

private void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
if (this.ItemContainerGenerator.Status == GeneratorStatus.ContainersGenerated)
{
// Do something here...
}
}

你可以找到more information here .

关于c# - Wpf ItemContainerGenerator.ContainerFromItem 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38200454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com