我在Silverlight应用程序中有一个ListBox。我正在尝试制作一个可编辑的列表框,所以我使用一个ItemTemplate来获取每个项目中需要的控件,比如textBox和button,以及它的工作正常。
我想在列表框的末尾添加一行,其中包含一个用于添加新项目的按钮。由于此项目与我的任何域类都没有关系,我使用普通对象作为“填充程序”,然后我有代码来识别此项目以正确显示按钮。
myListBox.Items.add(new object());
问题是我希望这个“新记录”项始终保持在列表框的末尾,所以当我需要插入新的域记录时,我使用这段代码:
myListBox.Items.Insert(myListBox.Items.Count - 1, domainItem);
当我调试myListBox.Items集合时,它的顺序正确,末尾有“添加新”按钮,但列表框在开始时显示此按钮。为什么我的项目显示的顺序与项目集合不同?
答案 0 :(得分:1)
除非有特殊原因,否则您最好使用按钮在列表框的外部和下方创建一个新控件,而不是尝试将按钮放入列表框集合中。如果需要,您始终可以将按钮设置为看起来像是在列表框中。
答案 1 :(得分:1)
您是否有理由不使用数据网格,因为它会删除所有排序问题,并允许您编辑条目。
数据网格绑定到ObservableCollection,它自动将可编辑字段连接到GUI。
干杯,