2009-03-10 8 views
0

개체의 데이터에 ComboBox를 바인딩하려고합니다. 이 객체는 허용 된 상태 인 목록과 현재 값을 나타내는 문자열을 보유합니다. 내가 겪고있는 문제는 양식이 올바르게로드되면 콤보 상자의 값이 현재 값으로 설정되지만 값을 다른 것으로 변경할 수는 없다는 것입니다. 드롭 다운을 클릭하고 새 값을 선택하면 드롭 다운이 닫히지 만 원래 값은 유지됩니다.WPF ComboBox Binding 바꾸기

콤보 상자는 각각 DataGrid의 한 행에 있고 ComboBox는 DataGrid의 RowDetailsTemplate에 포함되어 있습니다.

XAML :

<ComboBox 
    x:Name="cmbStatus" 
    ItemsSource="{Binding Path=AllowedStateValues}" 
    SelectedItem="{Binding Path=State}"  
    Height="20" 
    Width="100" /> 

답변

0

주 decleration : 나는 이벤트가없는

private string _state; 
    public string State { 
     get { return _state; } 
     set 
     { 
      if (AllowedStateValues != null && AllowedStateValues.Contains(value)) 
      { 
       _state = value; 

      } 
     } 

    } 

가이 변경 될 때 발생하지만, 그것은 또한 당신이 콤보 상자를 변경할 때 세터를 호출하지 표시되고

1

모드 to TwoWay. 그래도 문제가 해결되지 않으면 PresentationTraceSources.TraceLevel 속성을 높음으로 사용하여 자세한 내용을 확인하십시오.

+0

Mode = TwoWay를 시도해 보았습니다. 변경하지 않습니다. 나는 PresentationTraceSources.TraceLevel = "High"가 무엇을해야하는지 잘 모르겠습니다. – Stephan

+0

바인딩 세트와 관련된 모든 중요한 정보를 추적합니다. 문제의 원인에 대한 힌트가있을 수 있습니다. – orcun

0

방금 ​​같은 문제가있었습니다. 내 이슈가 바운드되는 아이템의 오버라이드에 있음을 알았습니다. 동일하지 않은 두 개 이상의 객체가 동일한 것으로 비교되지 않는지 확인하고 확인하십시오.