2015-01-27 2 views
0

ItemControl에 콤보 상자가 있습니다. xaml은ComboBox가 처음 생성 할 때 값을 만듭니다.

<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에 아무 것도 선택되어 있지 않다는 것입니다.이 코드는 내가 가지고있는 코드에 따라 정확합니다. 아무 것도 선택되지 않은 경우에만 첫 번째 항목을 선택하는 위의 트리거 또는 뭔가를 추가 할 수있는 방법이 있습니까? 예 : 새 itemcontrol 추가시?

+1

ItemsSource의 PropertyChangedEvent-Handler에서이를 처리 할 수 ​​있습니다 – DrKoch

답변

2

집합 상자의 현재 항목과 항상 일치하도록 comboBox 인스턴스에 IsSynchronizedWithCurrentItem="True"을 설정합니다.

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

또한, 컬렉션 항목을 추가하면 전체 목록을 다시 초기화하지 않는 selectedItem가 멀리 이동하지 않습니다.

NodeMembershipFunction의 경우 ObservableCollection<T>을 사용하고 이미 채우기를하지 않고 직접 컬렉션에 항목을 추가 할 것을 제안합니다.

관련 문제