【问题标题】:Silverlight ListBox Items beeing displayed in a different order thant the Items collectionSilverlight ListBox 项目的显示顺序与 Items 集合不同
【发布时间】:2012-03-28 04:20:41
【问题描述】:

我在 Silverlight 应用程序中有一个 ListBox。我正在尝试制作一个可编辑的列表框,因此我使用 ItemTemplate 在每个项目中拥有我需要的控件,例如文本框和按钮,并且它工作正常。

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

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

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

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

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

【问题讨论】:

  • 按钮在新项目之上还是在所有项目之上?

标签: silverlight listbox


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您是否有理由不使用数据网格,因为它会消除您的所有排序问题,并且允许您编辑条目。

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

    干杯,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多