У меня есть открытое свойство типа ObservableCollection<ClassName>
в коде файла, и я связал его со свойством ItemsSource Combobox.
<ComboBox Height="23"
Margin="82,34,71,0"
Name="comboBox1"
VerticalAlignment="Top"
ItemsSource="{Binding Path=Collection}"
DisplayMemberPath="Name" />
После того, как я заполнил эту коллекцию при загрузке формы, всеэлементы показаны, и я прокручиваю вниз до последнего элемента и выбираю его.
Теперь я нажимаю кнопку, которая добавит еще один элемент в коллекцию, и я хочу установить курсор на началосписок.Для этого я попробовал следующий код:
private void button1_Click(object sender, RoutedEventArgs e)
{
Collection.Add(new TempObject() { Name = "new item" });
comboBox1.SelectedIndex = -1;
}
. При этом полоса прокрутки не устанавливается в начало списка.Я попытался очистить список и заполнить его снова, но он все еще не работал.
помогите, пожалуйста ....
После применения BringIntoView:
private void button1_Click(object sender, RoutedEventArgs e)
{
Collection.Clear();
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
Collection.Add(new TempObject() { Name = "testItem" });
comboBox1.SelectedIndex = -1;
ComboBoxItem item = comboBox1.ItemContainerGenerator.ContainerFromIndex(0)
as ComboBoxItem;
if (item != null) item.BringIntoView();
}
Это будетвсегда возвращайте нуль для элемента ComboBoxItem.