2013-09-06 3 views
1

У меня есть файл XML следующим образом: -выбранное значение WPF выпадающий список не отображается

<Root> 
    <Level> 
     <id>1</id> 
     <display>Level1</display> 
    </Level> 
    <Level> 
     <id>2</id> 
     <display>Level2</display> 
    </Level> 
</Root> 

и у меня есть WPF выпадающий: -

<ComboBox x:Name="cmbLevel" HorizontalAlignment="Left" Margin="73,73,0,0" VerticalAlignment="Top" Width="120" 
     SelectedValuePath="id" SelectedValue="{Binding XPath=/Root/Level/id}" 
     ItemsSource="{Binding XPath=/Root/Level}" 
     IsSynchronizedWithCurrentItem="True" /> 

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

На данный момент у меня есть следующие

private void InitCombo(XDocument xdoc, ComboBox comboBox, string NodeName) 
{ 
    var displayItems = from ele in xdoc.Descendants(NodeName) 
    select new 
    { 
     id = (string)ele.Element("id"), 
     display = (string)ele.Element("display") 
    };    

    comboBox.DisplayMemberPath = "display"; 
    comboBox.SelectedValuePath = "id"; 
    comboBox.ItemsSource = displayItems.ToList(); 
} 

, а затем я добавляю выбранное значение следующим образом:

cmbLevel.SelectedValue = level; 

мне нужно добавить что-нибудь еще для того, чтобы показать выбранное значение Do в моих списках? Нужно ли мне пересобирать сборку?

Спасибо за вашу помощь и время

+0

Что вы пытаетесь установить в качестве выбранного значения? – Sheridan

ответ

0

Вы, кажется, несколько смутился об использовании ComboBox вариантов выбора. Я бы посоветовал вам прочитать страницу How to: Use SelectedValue, SelectedValuePath, and SelectedItem в MSDN. Существует несколько способов сделать выбор в ComboBox, все из которых четко описаны в связанной статье.

Из MSDN:

DisplayMemberPath: Получает или задает путь к значению на объекте источника, чтобы служить в качестве визуального представления объекта.

SelectedValue: Получает или задает значение SelectedItem, полученное с помощью SelectedValuePath.

SelectedValuePath: Получает или задает путь, который используется для получения SelectedValue из SelectedItem.

SelectedItem: Получает или задает первый элемент в текущем выделении или возвращает нулевое значение, если выбор пуст

Кроме того, почему вы устанавливая то же свойство в коде и в XAML?

+0

Sheridan, я совершенно новый для WPF, поэтому я делаю это образец приложения. Я связал SelectedValue как в коде, так и в XAML, поскольку, когда я имел его только в XAML, он по-прежнему не получал selectedValue правильно – Johann

+0

Также мне нужно установить идентификатор в коде, поскольку он не был установлен в XAML, как только я загрузите мой объект. Разве это не так? Я исхожу из фона ASP.NET, может быть, это то, что за моей мыслью – Johann

Смежные вопросы