تغيير ListBoxItem المحدد برمجياً
-
10-07-2019 - |
سؤال
هل من الممكن تغيير المحدد ListBoxItem
من Code-Behind في Windows Presentation Foundation؟
إنها مهمة بسيطة جدًا حقًا، لدي Next
و Previous
الزر ويمثلون العنصر التالي والسابق في ListBox
.لكن، myListBox.items
هي بالطبع تمثيلات كائنية لما قمت بتخزينه في ملف ListBox
.
لذا، كيف يمكن للمرء جلب ListBoxItem
لتعيين IsSelected
ملكية؟
المحلول
وربما كان أسهل شيء نفعله في قضيتك منذ تقومون به السابق والتالي هو مجرد زيادة في SelectedIndex:
//Increment
if(myListBox.SelectedIndex < myListBox.Items.Count -1)
myListBox.SelectedIndex++;
//Decrement
if(myListBox.SelectedIndex > 0)
myListBox.SelectedIndex--;
إذا <م> حقا م> ترغب في الحصول على ListBoxItem التي تشكل كائن كنت قد القيت في مربع القائمة الخاصة بك، يمكنك القيام به:
ListBoxItem item = myListBox.ItemContainerGenerator.ContainerFromItem(objectIWantToSelect);
item.IsSelected = true;
نصائح أخرى
لديك خيارات مختلفة:
- استخدم الخاصية SelectedItem أو SelectedIndex لعنصر التحكم ListBox
- إذا كان لديك ListBoxItem وليس ListBox الأصلي، فاستخدم ItemsControl.ItemsControlFromItemContainer(listboxitem) لاسترداد ListBox الأصلي (واستخدام الخصائص السابقة)
- استخدام واجهات ICollectionView (CollectionViewSource.GetDefaultView) وطرقها (MoveCurrentToNext، MoveCurrentToPrevious)
لا تنتمي إلى StackOverflow