Найдите объект в WPF ComboBox

Я столкнулся с той же проблемой на сервере nginx (DigitalOcean) - мне нужно было войти в систему как root и изменить файл /etc/php5/fpm/php.ini.

Чтобы найти строку с always_populate_raw_post_data Сначала я запускаю grep:

grep -n 'always_populate_raw_post_data' php.ini

Это вернуло строку 704

704:;always_populate_raw_post_data = -1

. Затем просто откройте php.ini в этой строке с помощью редактора vi :

vi +704 php.ini

Удалите двоеточие, чтобы раскомментировать его и сохранить файл :wq

. Наконец, перезагрузите сервер, и ошибка исчезла.

6
задан casperOne 15 August 2012 в 12:10
поделиться

5 ответов

Можно ли использовать ItemContainerGenerator?

ItemContainerGenerator содержит метод ContainerFromItem, который берет параметр объекта. Если у Вас есть ссылка на полный объект, который содержит Ваше поле комбинированного списка (или способ восстановить его), можно использовать следующее:

ComboBoxItem item = 
    (ComboBoxItem)myComboBox.ItemContainerGenerator.ContainerFromItem(myObject);
10
ответ дан 8 December 2019 в 18:44
поделиться

В WPF можно использовать метод FindName.

XAML:

    <ComboBox Name="combo">
        <ComboBoxItem Name="item1" >1</ComboBoxItem>
        <ComboBoxItem Name="item2">2</ComboBoxItem>
        <ComboBoxItem Name="item3">3</ComboBoxItem>
    </ComboBox>

Код - позади файла

   item1.Content = "New content"; // Reference combo box item by name
   ComboBoxItem item = (ComboBoxItem)this.combo.FindName("item1"); // Using FindName method

Для нахождения объекта его содержанием, можно использовать автоматизацию UI.

2
ответ дан 8 December 2019 в 18:44
поделиться

Можно получить объекты поля комбинированного списка двумя способами:

По товару:

ComboBoxItem item = (ComboBoxItem) control.ItemContainerGenerator.ContainerFromItem(control.SelectedItem);

Индексом:

ComboBoxItem item = (ComboBoxItem) control.ItemContainerGenerator.ContainerFromIndex(1);
0
ответ дан 8 December 2019 в 18:44
поделиться

вместо того, чтобы пытаться связать SelectedIndex, почему Вы только не связываете SelectedItem в ComboBox к значению в записи?

другими словами, установите DataContext ComboBox (или его родитель) к выбранной 'записи' и свяжите SelectedItem на ComboBox к выставленному свойству на 'записи'..

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

1
ответ дан 8 December 2019 в 18:44
поделиться

Можно ли дать некоторый контекст относительно того, что точно Вы пытаетесь сделать?

Какие объекты Вы вставляете свое Поле комбинированного списка и использование который метод? (Вы устанавливаете или связываете свойство ItemsSource?), Почему Вам нужен к поиску объект его "текстом"? Самое обычное использование в WPF должно связать свойство SelectedItem с чем-то еще так, что можно получить/установить выбранную запись с помощью представления. Существует ли конкретное требование, для которого необходимо найти определенный объект в списке?

Худший случай, можно выполнить поиск на наборе, с которым Вы связываете свой ComboBox с помощью Linq Для Объектов.

Не путайте ComboBoxItem (то есть, элемент, сгенерированный для Вас негласно WPF при привязке ItemsSource) с SelectedItem, который является фактическим объектом в наборе, с которым Вы связываете. Это обычно - источник большинства проблем с WPF, когда Вы не привыкли к нему. Существует очень мало случаев, когда необходимо найти фактический ComboBoxItem.

0
ответ дан 8 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: