底部的列表框项目未自动选中

时间:2011-11-25 11:37:15

标签: c# wpf listbox listboxitem

我有关于列表框行为的这个微妙的程序。我的列表框与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;
}

我想知道这是否只是列表框的自然行为。

1 个答案:

答案 0 :(得分:0)

我现在才意识到这一点......将我的列表框设置为:

VirtualizingStackPanel.IsVirtualizing="False"

做了所有的伎俩。感谢Dr.WPF的想法。虽然关闭虚拟化(性能)会产生影响,但这并不重要。