Как выбрать первый элемент списка по умолчанию? - PullRequest
0 голосов
/ 28 февраля 2012

Я использую ObservableCollection, чтобы связать данные в список. Есть ли способ сделать первый элемент списка, который будет выбран сразу после привязки данных? Могу ли я использовать какое-либо событие?

Спасибо

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

Создайте свойство с именем IsSelected в объекте, содержащемся в ObservableCollection.Свяжите это со свойством ListBoxItem IsSelected через привязку TwoWay.

Затем, в обратном вызове OnLoaded страницы (или там, где вы привязываете коллекцию к ListBox), сделайте что-то подобное

foreach( var obj in myCollection ) {
  obj.IsSelected = false;
}
if( myCollection.Count > 0 ) {
  myCollection[0].IsSelected = true;
}
// bind the collection to the listbox
1 голос
/ 29 февраля 2012

Сразу после (или в любой момент после) установки текста данных для списка (или родительского объекта - возможно, страницы), просто установите выбранный индекс для первого элемента в списке.

listbox.SelectedIndex = 0;

Еслиу вас есть обработчик, когда выбранный индекс изменяется, тогда обязательно игнорируйте его при первой установке индекса.

0 голосов
/ 28 февраля 2012

почему бы вам не попробовать что-то вроде

var listBoxItem = ItemContainerGenerator.ContainerFromItem(myList.First());
listBoxItem.Focus();

или

listBoxItem.IsSelected = true;
...