Silverlight ListBox项目将以与Items集合不同的顺序显示



我在Silverlight应用程序中有一个ListBox。我正在尝试制作一个可编辑的列表框,所以我使用ItemTemplate在每个项目中都有我需要的控件,比如textBox和按钮,并且它运行良好。

我希望在列表框的末尾有一行,其中包含一个添加新项目的按钮。由于此项目与我的任何域类都不相关,所以我使用一个普通对象作为"Filler",然后我有识别此项目的代码来正确显示按钮。

myListBox.Items.add(new object());

问题是,我希望这个"新记录"项目始终保持在列表框的末尾,所以当我需要插入一个新的域记录时,我使用以下代码:

myListBox.Items.Insert(myListBox.Items.Count - 1, domainItem);

当我调试myListBox.Items集合时,它的顺序是正确的,末尾有"添加新"按钮,但列表框在开始时显示了这个按钮。为什么我的项目以与项目集合不同的顺序显示?

除非有特定原因,否则最好创建一个新控件,使按钮位于列表框的外部和下方,而不是尝试将按钮放入列表框集合本身。如果需要,您可以随时将按钮设置为看起来像是在列表框中。

是否有原因不使用数据网格,因为它可以消除所有排序问题,并允许您编辑条目。

数据网格绑定到一个ObservableCollection,它会自动将您的可编辑字段连接到GUI。

干杯,

最新更新