2012-03-27 40 views
0

我在Silverlight应用程序中有一个ListBox。我试图做一个可编辑的列表框,所以我使用ItemTemplate在每个项目中都有我需要的控件,例如文本框和按钮,并且它的工作正常。Silverlight ListBox项目beeing以不同的顺序显示为项目集合

我想在列表框的末尾添加一行以添加新项目的按钮。由于此项目不会与任何我的域类相关,因此我使用普通对象作为“填充符”,然后使用标识此项的代码来正确显示按钮。

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

的问题是,我想这个“新记录”项目将在列表框中结束始终保持,所以当我需要插入一个新的域记录,我用这个代码:

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

当我调试myListBox.Items集合时,它的顺序是正确的,最后是“添加新的”按钮,但列表框在开始时显示此按钮。为什么我的物品会以与Items集合不同的顺序显示?

+0

该按钮是在新项目或以上所有项目? – Vinicius 2012-03-27 19:49:19

回答

1

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

+0

感谢您的建议,我这样做并解决了我的问题。 – Marlon 2012-03-29 13:25:31

1

是不是有一个原因,你不使用数据网格,因为它会消除所有的订购问题,它可以让你编辑条目。

datagrid绑定到一个ObservableCollection,它将您的可编辑字段自动连接到GUI。

干杯,