2010-08-17 1 views
9

정적 인 List<CustomSettings> 옵션이 바인딩 된 ItemsSource가있는 ComboBox가 있습니다. ComboBox는 CustomObject 클래스에 바인딩되는 양식의 일부이며 해당 클래스의 속성 중 하나는 CustomSettingProperty입니다.WPF - Combobox SelectedItem이 설정되지 않았습니까?

ComboBox의 SelectedItem을 CustomObject에 지정된 속성에 바인딩하고 싶지만 SelectedItem="{Binding Path=CustomSettingProperty}"이 기본 선택한 항목을 설정하지 않습니다. 중단 점을 사용하여 get; 메서드를 호출하는 것을 볼 수 있습니다. 따라서 CustomSettingProperty가 List<CustomObject>과 별도로 생성되므로 WPF가 동일한 항목이라고 생각하지 않을 수 있습니다.

쉬운 방법이 있나요? 또는 CustomSettings 클래스에 ID가 포함되어있을 수도 있습니다.

+0

당신은 CustomSettingProperty의 코드를 줄 수는? 그리고 아마도 당신이 그것을 어떻게 세우고 있는지에 대한 예가있을 것입니다. – jsmith

답변

20

선택한 항목이 목록에 포함 된 인스턴스가 아닌 경우 ComboBox가 동일한 개체임을 알리려면 CustomObject에서 Equals()를 재정의해야합니다.

는, 동일한 인스턴스 어쩌면이 같은 양방향으로 BindingMode을 설정하는 등 단지 간단한 일이 있다면 :

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}" 
+1

감사합니다! 나는 Equals를 재정의하는 것에 대해 생각하지 않았다는 것을 믿을 수 없다. 나는 실수를 다시하지 않을 것이다. (희망) – Rachel

+0

나는 똑같은 문제를 가지고있다. 그러나 나는 Equals()를 오버라이드했다. BindingMode? 참고 : C# 및 Winforms를 사용하고 있습니다. –

+0

모드는 기본적으로 TwoWay입니까? –