2011-08-23 3 views
0

콤보 박스에 바인딩되는 관찰 가능한 컬렉션이 있습니다.WPF Combobox selectedvalue 업데이트 선택시 업데이트되지 않음

<ComboBox Name="cmbKeyA" 
      Width="100" 
      SelectedValue="{Binding Path=KeyAName}" 
      ItemsSource="{Binding Path=DataContext.KeyTemplates, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
      DisplayMemberPath="Name" 
      SelectedValuePath="Name"/> 

첫 컬렉션이 비어 :이 컬렉션에 바인딩

public ObservableCollection<AnyType> AnyTemplates { get; set; } 

그리고 콤보. 그런 다음 컬렉션에 새 값을 추가하면 selectedItem이이 값으로 변경됩니다. 컬렉션 항목에서 Name 속성을 변경하면 combobox selectedItem이 변경됩니다 (DisplayMemberPath가 새 값으로 변경되는 것을 볼 수 있음). 그러나 수동으로이 항목을 다시 선택할 때까지 선택 값이 변경되지 않습니다. Name 속성 컬렉션 요소는 PropertyChanged 이벤트를 호출합니다. 왜 이것이 작동하지 않습니다.

요약 : SelectedItem을 comboxo SelectedItem에서 NameProperty로 변경하면 SelectedItem이 변경되지만 ComboBox에서 다시 SelectedChange를 변경하기 전까지 SelectedValue는 업데이트되지 않습니다. 그것은 다음과 같습니다 있도록 콤보 상자의 ItemStyle 컨테이너를 사용하여

답변

0

시도 :

또한, 당신은 NotifyPropertyChanged으로 모든 일을하고 DataContext를 설정했는지 확인합니다. 또 다른 것은 먼저로드시 뷰 모델의 초기 값을 설정하고 SelectedItem이 변경되도록하는 것입니다.