【问题标题】:How to select an item in a listbox programatically using its index using c#如何使用 C# 的索引以编程方式选择列表框中的项目
【发布时间】:2011-08-17 21:43:01
【问题描述】:

我有一个可以编辑的列表框。编辑并保存该列表框中的项目后,新编辑的项目将显示在列表中,但其位置会发生变化。即使它的位置发生变化,我也希望能够选择或突出显示该项目。我可以获得它的新索引,但是在列表框中的 psoiton 更改后,我无法找到一种方法来重新编程!

这里的任何帮助将不胜感激 谢谢

【问题讨论】:

  • 您是否尝试通过设置属性ListBox.SelectedItemListBox.SelectedIndex来选择项目?

标签: c# wpf listbox


【解决方案1】:
ListBox.SelectedIndex = newPosition;

ListBox.SelectedIndices.Add(newPosition);

如果您只想选择您的项目,请在之前使用可选的 SelectedIndices.Clear()。

【讨论】:

  • 感谢您的建议。我不知道为什么我忘记了!我对所有这些东西还是陌生的!
  • SelectedIndices 在 WPF 上不存在 ListBoxes。
【解决方案2】:

我假设 itemssource 是某种集合。为什么不使用带有 Mode=TwoWay 的 SelectedItem 属性从 c# 代码中选择所需的项目?

<ListBox ItemsSource="{Binding Path=YourItemsCollection}"
         SelectedItem="{Binding Path=MySelectedItem, Mode=TwoWay}" />

另一种方法是使用ICollectionViewMoveCurrentTo 方法。您所要做的就是使用CollectionViewSource.GetDefaultView(this.YourItemsCollection) 创建一个ICollectionView。如果采用这种方式,则不需要绑定到 SelectedItem,但必须为列表框设置 IsSynchronizedWithCurrentItem=true。

【讨论】:

  • 感谢您的回复。我只是听从了弗拉基米尔的建议,一切顺利:)
  • np:) 因为 mvvm 和 wpf 绑定我不再使用索引的东西了 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-30
  • 1970-01-01
相关资源
最近更新 更多