【问题标题】:Listbox items at the bottom were not automatically selected底部的列表框项目未自动选择
【发布时间】:2011-11-25 11:37:14
【问题描述】:

我有一个关于列表框行为的微妙程序。我的列表框与视图模型中的可观察列表绑定。在列表框中添加项目有两种方法。首先是添加一个项目,然后直接选择该项目。这工作正常。

第二种方式是 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;
}

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

【问题讨论】:

    标签: c# wpf listbox listboxitem


    【解决方案1】:

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

    VirtualizingStackPanel.IsVirtualizing="False"
    

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

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      相关资源
      最近更新 更多