代码之家  ›  专栏  ›  技术社区  ›  Szymon Rozga

在添加项目时冻结listboxitem

  •  10
  • Szymon Rozga  · 技术社区  · 14 年前

    到目前为止,我唯一能做的就是附加到ScrollChanged事件,最多使用BringIntoView或ScrollIntoView方法来确保该项始终显示在UI的某个位置,但我无法锁定它的位置。

    有没有人做过这样的事来帮忙?

    5 回复  |  直到 14 年前
        1
  •  1
  •   sprite    14 年前

    我认为以下几点可以解决你的问题:

    希望这对你有帮助。

        2
  •  0
  •   Leigh S    14 年前

    您始终可以强制将项目添加到集合的末尾。否则,我认为滚动ScrollViewer是正确的。进入“编辑模式”时,跟踪当前水平偏移。

    
     ScrollViewer sv = listBox.GetScrollViewer();
     double indexPos =  sv.HorizontalOffset;
    
    

    
     ScrollViewer sv = listBox.GetScrollViewer();
     sv.ScrollToHorizontalOffset(indexPos+1); // This will obviously require an offset 
    
        3
  •  0
  •   Kirk    14 年前

    问题是你只是不想让它移动?或者,当您应用更改时(例如将更改应用到现在位于上一个索引的项),您通过索引号引用所述项并且索引中的更改会导致其他问题吗?

        4
  •  0
  •   Jonathan    14 年前

        5
  •  0
  •   Lummo    14 年前

    如果冻结列表框的其余部分是可行的选择。这样,添加的项目直到编辑完成或转义后才显示,然后您可以尝试使用 BeginUpdate EndUpdate