2012-05-24 2 views
1

У меня возникла проблема, когда моя комбобокс теряет значение SelectedIndex после закрытия UserControl. У ViewModel все еще есть это, но представление продолжает сбросить его до -1. Я понимаю, что есть проблема с порядком привязки ItemSource и SelectedIndex, но я не привязываюсь непосредственно к ItemSource. В принципе, я пытаюсь выяснить правильный синтаксис для привязки ниже.ComboBox lost SelectedIndex

   </ComboBox.ItemTemplate> 
       <ComboBox.ItemsSource> 
        <CompositeCollection> 
         <ComboBoxItem IsEnabled="False">Select a database connection...</ComboBoxItem> 
         <CollectionContainer Collection="{Binding Source={StaticResource ConnectionsBridge}}" /> 
         <ComboBoxItem>&lt;New...&gt;</ComboBoxItem> 
        </CompositeCollection> 
       </ComboBox.ItemsSource> 

       **<ComboBox.SelectedIndex> 
        <Binding Path="SelectedConnectionIndex"/> 
       </ComboBox.SelectedIndex>** 

      </ComboBox> 
+0

Оказывается, связывание теперь правильный ответ благодаря Шона, но индекс STILL сброса. – nathantruant

ответ

1

Вы связываетесь с индексом (int) или объектом (объектом). Ваш пример привязывается к свойству, которое указывает на индекс, а не на объект.

Вы должны установить свойство Mode в SelectedIndex связывания

<ComboBox SelectedIndex="{Binding SelectedConnectionIndex, Mode=TwoWay}"> 
</ComboBox> 
+0

Ooops, я имею в виду SelectedIndex. – nathantruant

+0

Я не могу привязываться к SelectedIndex на уровне combobox, потому что привязка ItemSource происходит внутри CompositeCollection. В этом суть. Мне нужно знать, как делать то, что вы делали выше, внутри тега INSIDE вложенность nathantruant

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