2015-01-27 2 views
0

У меня есть поле со списком в ItemControl. XAML являетсяComboBox для выбора first Значение при создании

<ComboBox ItemsSource="{Binding DataContext.NodeMembershipFunction, 
     RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}, 
     AncestorLevel=1}}" 
    DisplayMemberPath="_Name" 
    SelectedValue="{Binding Condition, Mode=TwoWay}" 
    SelectedValuePath="_Type"> 
</ComboBox> 

Мой выпадающий отлично работает над так что я не вывешивать любой код, чтобы объяснить выше.

Моя проблема заключается в том, что когда я добавляю новый элемент в свой ItemControl, у combox ничего не выбрано (это верно в соответствии с кодом, который у меня есть). Есть ли способ добавить триггер или что-то в нем, которое выбирает первый элемент только тогда, когда ничего не выбрано, например, при добавлении нового элемента управления?

+1

Вы можете обработать это в PropertyChangedEvent-Handler вашего ItemsSource – DrKoch

ответ

2

Установите IsSynchronizedWithCurrentItem="True" на экземпляр comboBox, чтобы он всегда находился в синхронизации с текущим элементом коллекции.

<ComboBox IsSynchronizedWithCurrentItem="True"..../> 

Кроме того, добавление элемента в коллекции не заставит SelectedItem уйти, если вы повторно инициализировать весь список.

Я бы предложил использовать ObservableCollection<T> для свойства NodeMembershipFunction в случае, если он уже не делает этого и не добавляет элемент непосредственно в коллекцию, вместо того, чтобы его повторно заселять.

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