底部的列表框项没有被自动选中
本文关键字:列表 底部 | 更新日期: 2023-09-27 18:15:37
我有这个关于列表框行为的微妙程序。我的列表框与视图模型中的一个可观察列表绑定在一起。在列表框中添加项目有两种方法。首先是添加单个项目,然后该项目将被直接选中。这很好。
第二种方法是LOAD,顾名思义,它将在lisbox中添加多于1个项目。现在的问题是,当加载的项目超过列表框可以容纳在视图中,那些不在视图中的项目(项目在底部,因此需要滚动,以便它被查看)没有被自动选中…
只有默认查看的项目才会被选中:
private void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
if (listBoxAddresses.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated) return;
for (int i = 0; i < TestSetting.DeviceSettings.Count; i++)
{
ListBoxItem myListBoxItem = (ListBoxItem)(listBoxAddresses.ItemContainerGenerator.ContainerFromItem(TestSetting.DeviceSettings[i]));
if (myListBoxItem != null)
{
myListBoxItem.IsSelected = true;
}
}
listBoxAddresses.ItemContainerGenerator.StatusChanged -= ItemContainerGenerator_StatusChanged;
}
我想知道这是否是listbox的自然行为
我现在才意识到…设置我的列表框为:
VirtualizingStackPanel.IsVirtualizing="False"
做了所有的技巧。感谢wpf博士的想法。虽然关闭虚拟化会带来一些后果(性能),但这并不重要。