我有关于列表框行为的这个微妙的程序。我的列表框与viewmodel中的可观察列表绑定。在列表框中添加项目有两种方法。首先是添加单个项目,然后直接选择该项目。这很好用。
第二种方式是LOAD,其名称将在lisbox中添加多于1个项目。现在问题是当加载项目超出列表框可以容纳在视图中时,那些不在视图中的项目(因此底部的项目需要滚动才能被查看)不会自动选择... < / p>
只有默认查看的项目才会被选中:
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;
}
我想知道这是否只是列表框的自然行为。
答案 0 :(得分:0)
我现在才意识到这一点......将我的列表框设置为:
VirtualizingStackPanel.IsVirtualizing="False"
做了所有的伎俩。感谢Dr.WPF的想法。虽然关闭虚拟化(性能)会产生影响,但这并不重要。